日期:2014-05-20  浏览次数:20641 次

java快速排序算法的代码理解...
在百度百科上看了介绍快速排序原理,但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