A-A+
某个待排序的序列是一个可变长度的字符串序列 这些字符串一个接一个地存储于唯一的字符数组中。请
问题详情
某个待排序的序列是一个可变长度的字符串序列,这些字符串一个接一个地存储于唯一的字符数组中。请改写快速排序算法,对这个字符串序列进行排序。
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:Partition(RecType R[]int 1int h)//一趟快速排序算法枢轴记录到位并返回其所在位置{int i=l;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];}//whileR[i]=R[0];return i;}//Partition
Partition(RecTypeR[],int1,inth)//一趟快速排序算法,枢轴记录到位,并返回其所在位置{inti=l;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];}//whileR[i]=R[0];returni;}//Partition