快速排序
空间复杂度:
最优的情况下空间复杂度为:O(logn) ;每一次都平分数组的情况
最差的情况下空间复杂度为:O( n ) ;退化为冒泡排序的情况
时间复杂度:
快速排序的平均时间复杂度也是:O(nlogn)
快速排序最差的情况下时间复杂度为:O( n^2 )
快速排序最优的情况下时间复杂度为:O( nlogn )
private static void quickSort(int[] array,int low,int high){ if(low<high){ int index=getIndex(array,low,high); quickSort(array,0,index-1); quickSort(array,index+1,high); } } /** * 注意首先从后半部门开始排 */ private static int getIndex(int[] array,int low,int high){ int tmp=array[low]; while(low<high){ while(low<high&&array[high]>tmp){ high--; } array[low]=array[high]; while(low<high&&array[low]<=tmp){ low++; } array[high]=array[low]; } array[low]=tmp; return low; }
浙公网安备 33010602011771号