算法思想:
通过设置一个岗哨,每次跟这个岗哨进行比较,比他小的放在左边,比他大的放在右边。再对岗哨左边的数组0----middle-1,和middle+1-----end,进行同样的排序。
算法复杂度:
快速排序时间复杂度为O(nlogn),由于是在原数组上面利用替换来实现,因此不需要额外的存储空间。
核心代码:
1 public static void quickSort(int []a,int low,int high){ 2 int middle; 3 if(low=middle)14 high--;15 tmp = arr[high];16 arr[high]= arr[low];17 arr[low]=tmp;18 while(low
完整代码
1 package quickSort; 2 //通过设置一个岗哨,每次跟这个岗哨进行比较,比他小的放在左边,比他大的放在右边。 3 //再对岗哨左边的数组0----middle-1,和middle+1-----end,进行同样的排序。 4 public class Sort { 5 static int arrtest1[] = {4,3,7,8,0,9,1,2,6,5}; 6 int arrtest2[] = {0,1,2,3,4,5,6,7,8,9}; 7 int arrtest3[] = {9,8,7,6,5,4,3,2,1,0}; 8 public static void main(String args[]){ 9 display(arrtest1);10 quickSort(arrtest1,0,arrtest1.length-1);11 display(arrtest1);12 }13 public static void quickSort(int []a,int low,int high){14 int middle;15 if(low=middle)26 high--;27 tmp = arr[high];28 arr[high]= arr[low];29 arr[low]=tmp;30 while(low
运行结果