我見過最通俗易懂的快速排序過程講解,轉自《坐在馬桶上看演算法:快速排序》
阿新 • • 發佈:2019-01-24
如果以上C程式碼看不懂,請看下面java程式碼:
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){ // 交換(a[j-1],a[i-1]); i++; temp=a[j-1]; a[j-1]=a[i-1]; a[i-1]=temp; } } //交換(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); } } //main方法中將陣列傳入排序方法中處理,之後列印新的陣列 public static void main(String[] stra){ int[] a={7,10,3,5,4,6,2,8,1,9}; QuickSort(a,1,10); for (int i=0;i<a.length;i++) System.out.println(a[i]); }