快速排序
排序过程:选取一个数,确定其最终位置,左边均大于这个数,右边均小于这个数,然后再对左右两边进行相同
的排序过程。
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) 不稳定
代码下载: