在百度百科上看了介绍快速排序原理,但copy一下代码还是没看懂...大家帮忙看看下面代码啥意思啊...
- Java code
public class QuickSort { public static int Partition(int a[],int p,int r){ int x=a[r-1]; int i=p-1; int temp; for(int j=p;j<=r-1;j++){ if(a[j-1]<=x){ // swap(a[j-1],a[i-1]); i++; temp=a[j-1]; a[j-1]=a[i-1]; a[i-1]=temp; } } //swap(a[r-1,a[i+1-1]); temp=a[r-1]; a[r-1]=a[i+1-1]; a[i+1-1]=temp; return i+1; } public static void QuickSort(int a[],int p,int r){ if(p<r){ int q=Partition(a,p,r); QuickSort(a,p,q-1); QuickSort(a,q+1,r); } } public static void main(String[] stra){ int a[]={23,53,77,36,84,76,93,13,45,23}; QuickSort(a,1,10); for (int i=1;i<=10;i++) System.out.print(a[i-1]+" "); }}
------解决方案--------------------
你可以看下快速排序的动画,原理差不多,只是我是以a[0]作为分区标准的
http://download.csdn.net/detail/wangdong20/4129396
http://download.csdn.net/detail/wangdong20/4129391