排序方法——快速排序
阿新 • • 發佈:2018-05-12
oid 方法 就是 static 有序 ati RR -- 交換
最近有個前端大神寫錯了快速排序,所以我這裏記錄一下
所謂的快速排序就是分治排序的分之中不斷遞歸把數組分成大小兩個部分,再繼續分成大小兩個部分
分的過程中完成整個數組的有序。
交換次數較多,叠代次數少,空間耗費少
代碼如下
public static void FastSort(int[] arr,int low,int high){ int l=low; int h=high; int p=arr[low]; while(l<h){ while(l<h&&arr[h]>p) h--; if(l<h){ int temp=arr[h]; arr[h]=arr[l]; arr[l]=temp; l++; } while(l<h&&arr[l]<=p) l++; if(l<h){ int temp=arr[h]; arr[h]=arr[l]; arr[l]=temp; h--; } } if(l>low)FastSort(arr,low,l-1); if(h<high)FastSort(arr,h+1,high); }
排序方法——快速排序