常見演算法之18 快速排序

2022-03-14 17:22:41 字數 899 閱讀 9583

快速排序基本思想

選定乙個中樞元素,以其為基準點,將小於它的數放在其前面,大於其的數放在後面,把中樞元素放在最終合適的位置。然後再對左右兩邊分別遞迴。

快速排序的基本步驟:

1 初始時,以第乙個元素作為中樞元素。低指標指向第乙個元素,高指標指向最後乙個元素。

2 當中樞元素在低指標時,從高指標開始向前查詢第乙個小於中樞元素的數,並交換這個數和中樞元素。將中樞元素移到高指標的位置。

3 當中樞元素在高指標時,處理方式同上相反。

4 當高低指標指向同乙個位置時,說明完成一輪排序,此時中樞元素處在了最終的位置上。

5 之後,再對中樞元素兩邊進行相同操作。

基本**:

public static void quicksort(int array, int start, int end)

int temp = array[index];

array[index] = array[high];

array[high] = temp;

index = high;

highflag = false;

}//上述3

else

int temp = array[index];

array[index] = array[low];

array[low] = temp;

index = low;

highflag = true;}}

//上述5

quicksort(array, start, low - 1);

quicksort(array, low + 1, end);}}

常見排序演算法之快速排序

思想 找乙個記錄,以它的關鍵字作為 樞軸 凡其關鍵字小於樞軸的記錄均移動至該記錄之前,反之,凡關鍵字大於樞軸的記錄均移動至該記錄之後。致使一趟排序之後,記錄的無序序列 r s.t 將分割成兩部分 r s.i 1 和r i 1.t 且 r j key r i key r j key s j i 1 樞...

常見排序演算法之快速排序

快速排序是一種分割槽交換排序,是目前已知實測最快的一種排序演算法.6.快速排序 演算法思想 快速排序的基本思想是,通過一趟劃分將陣列或線性表劃為左部,右部,和基準值.其中左部都比基準值小,右部都比基準值大.1 在陣列中選擇乙個樞紐元key,一般情況下選取第乙個資料 2 將所有比key值小的資料移到k...

常見演算法溫習之快速排序

部落格內容中的排序以公升序排列為例 1.演算法理解 快排的基本思想是 1.1 選取pivot 通常不加考慮地可以直接選取序列的第乙個元素作為pivot,但是極端情況下,當原始序列恰好以降序排列時,快排時間複雜度將達到o n 2 比較好的方法是 三數中值分割法 即選取序列的第0個 最後乙個和最中間乙個...