快速排序
排序过程:选取一个数,确定其最终位置,左边均大于这个数,右边均小于这个数,然后再对左右两边进行相同
的排序过程。
public void sorting() {
this.quickSorting(0, array.length);
}
private void quickSorting(int start,int end){
if(start>=end||start<0)
return;
else{
int guard=start;
int temp;
for(int i=start+1;i<end;i++){
if(array[guard]>array[i]){
temp=array[i];
for(int j=i;j>guard;j--){
array[j]=array[j-1];
}
array[guard]=temp;
guard++;
}
}
quickSorting(start,guard);
quickSorting(guard+1,end);
}
}
时间复杂度: 平均O(nlogn) 最好O(nlogn) 最坏O(n^2) 不稳定
代码下载:

浙公网安备 33010602011771号