首先從後往前找,找到乙個比基準值小的數之後,停下來,與基準值交換
然後又從前往後找,找到乙個比基準值大的值,停下來,接著與基準值交換
直到,所有的數遍歷完畢,及左右陣列座標相等,則將基準值填入之前定義的座標中
即:陣列被分為左右兩個區間,接下來用遞迴對左右區間進行排序
public class newsort
arr[low] = arr[high];//比基準值小的數移到低端
while(low < high && arr[low] < temp)
arr[high] = arr[low] ; //比基準值大的數移到高階
}arr[low] = temp ; //基準值最後乙個記錄
return low ; // 返回排一次後基準值的新位置
}public static void quicksort(int arr,int low,int high)
}public static void main(string args) ;
quicksort(arr,0,arr.length-1);
for(int x = 0;x < arr.length;x++)
}}
快速排序思想及C 實現
ste p1.step 1.step1.通過一趟排序把資料分成兩部分,其 中 color 其中一部分的所有資料都要比另一部分的所有資料小,基準資料 稱為樞軸 排在這兩個子串行的中間 s te p2.step 2.step2.對這兩個子串行遞 歸 color 遞迴地呼叫排序演算法 int partit...
java 快速排序的思想及解釋說明
快速排序在應用上很廣泛,大家有知道二分法,二分法在排好序的陣列中查詢資料是最快的 快速排序是在無序的陣列中排序 查詢相對是最快的 如今大資料時代,在資料量如此之大的情況下查詢的速度是很重要的,那麼認識快速排序的思想是很重要的,快速排序的第乙個思想 二分思想 就是把乙個整體分成2份,每份單獨處理,這樣...
排序演算法 快速排序原理及Java實現
和以前的寫法對比,基準值所在的位置沒必要每次都進行交換,只在一次快排完成後,重新把當前的基準值賦值給現在的index位置就好了。寫的很強,感謝作者 public class quicksort i low j hight index a i 用子表的第乙個記錄做基準 while i j a i in...