在我的在线课程的一项作业中,我必须使用快速排序算法对单词列表进行排序。我能够对数字列表进行排序,但不能对单词进行排序。函数 IthChar 接受 2 个参数,一个字符串和一个表示字符串索引的整数,并返回位于索引位置的字符。
例如 IthChar("Paul", 0) --> P
下面是快速排序、交换和 swapPivot 函数:
void quickSort(string array[], int left, int right)
{
int I, J, pivot;
char chI, chJ, chPivot;
if(left<right)
{
pivot=left;
I=left;
J=right;
while(I<J)
{
chI=IthChar(array[I], 0);
chJ=IthChar(array[J], 0);
chPivot=IthChar(array[I], 0);
while(chI<=chPivot&&I<right)
I++;
while(chJ>chPivot)
J--;
if(I<=J)
{
swap(array, I, J);
}
}
swapPivot(array, pivot, J);
quickSort(array, left, J-1);
quickSort(array, J+1, right);
}
}
void swap(string array[], int loc, int loc1)
{
int temp;
temp=array[loc];
array[loc]=array[loc1];
array[loc1]=temp;
}
void swapPivot(string array[], int pivot, int J)
{
int temp;
temp=array[pivot];
array[pivot]=array[J];
array[J]=temp;
}
感谢:D