标签:算法导论
快速排序本质上是插入排序,但是它在这个基础上增强了算法。
下面我们来分析一下快速排序:
有了前面的分析基础,我们在来看排序算法也就容易多了。
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); } }
标签:算法导论
原文地址:http://blog.csdn.net/u012427937/article/details/38226367