算法导论第七章___快速排序

来源:互联网 发布:淘宝上哪家攒机好 编辑:程序博客网 时间:2024/05/16 05:37

快速排序本质上是插入排序,但是它在这个基础上增强了算法。

下面我们来分析一下快速排序:


有了前面的分析基础,我们在来看排序算法也就容易多了。

public class Quick_Sort {private void quick_Sort(int []A,int left,int right){if(left<right){//划区比较,这个partition  第一次!得到的就是我们刚才说的2。int partition=partition(A, left, right);//实现第一次划区的结果show(A);            //进行下一次划区,quick_Sort(A, left, partition-1);quick_Sort(A, partition+1, right);}}private int partition(int []A,int left,int right){int x=A[right];int i=left-1;for (int j = left; j <= right-1; j++) {if(A[j]<=x){       int exchange=A[++i];       A[i]=A[j];       A[j]=exchange;}}int exchange=A[++i];    A[i]=A[right];    A[right]=exchange;return i;}public void show(int A[]){for(int a:A){System.out.print(a+"  ");}System.out.println();}public static void main(String[] args) {int A[]={4,3,1,0,2};Quick_Sort sort=new Quick_Sort();sort.quick_Sort(A, 0, A.length-1);}}


0 0