应用题 13.某个待排序的序列是一个可变长度的字符串序列,这些字符串一个接一个地存储于唯一的字符数组中。请改写快速排序算法,对这个字符串序列进行排序。
【正确答案】 int Partition(RecType R[],int n,int h){
//一趟快速排序算法,枢轴记录到位,并返回其所在位置
int i=n,j=h,R[0]=R[i],x=R[i].key;
while(i<j){
while(i<j&&R[j].key>=x)j--;
if(i<j)R[i]=R[j]:
while(i<j&&R[i].key<=x)i++;
if(i<j)R[j]=R[i];
}//while
R[i]=R[0];
return i;
}
提示:此题考查的知识点是快速排序的思想。
【答案解析】