深入快速排序(QuickSort)(二)简单伪代码
一、快速排序算法:QuickSort
public int Partition(SeqList R,int i,int j){//调用Partition(R,low,high)时,对R[low...high]进行划分//并返回基准记录的位置dataType pivot = R[i];//用区间的第1个记录作为基准,while(i<j){//从区间两段交替向中间扫描,直至i==j为止while(i<j&&R[j].key>=pivot.key){--j;//从右向左扫描,查找第1个关键字小于pivot.key的记录R[j]}if(i<j){//表示找到的R[j]的关键字<pivot.keyR[i++]= R[j];//注意,是i++,相当于R[i]=R[j];++i;R[j]给R[i],然后i指针加1}while(i<j&&R[i].key<=pivot.key){++i;}if(i<j){//表示找到了R[i],使R[i].key>pivot.keyR[j--]=R[i];//注意,这里是j--}}//endWhileR[i]=pivot;//基准位置被最后定为,当i==j的时候return i;}