/**
* 快速排序
* @param a
* @return
*/
public void fastSort(int a[],int left,int right){
if(left>=right){
return ;
}
int criticalIndex=makeSorted(a, left,right);
fastSort(a,left,criticalIndex);
fastSort(a, criticalIndex+1, right);
}
private int makeSorted(int a[],int left,int right){
int criticalValue=a[left];
int index=left;
int temp;
while(left<right){
while((left<right)&&(a[right]>=criticalValue)){
right--;
}
a[left]=a[right];
while((left<right)&&(a[left]<=criticalValue)){
left++;
}
a[right]=a[left];
}
a[index]=a[right];
a[right]=criticalValue;
return right;
}
排序算法之快速排序
最新推荐文章于 2022-08-20 21:47:45 发布