資料結構 快速排序

2021-07-12 01:03:31 字數 942 閱讀 7284

選擇乙個基準元素,通常選擇第乙個元素和最後乙個元素,通過一趟掃瞄,將待排序列分成兩部分,一部分比基準元素小,一部分大於登陸基準元素,此時基準元素在其排好序之後的正確位置,然後再用同樣的方法遞迴的排序劃分的兩部分。

* 通過一次掃瞄將陣列分成了兩部分(分割槽),分別對這兩部分進行partition處理;

* 直到無法在進行分割位置,就是乙個分割槽中只有乙個資料即left>=right時

*@param a

*@param left

*@param right

*/public

static

void

quicksort(int a,int left,int right)

}/**

* 將陣列中left到right中的數進行分割槽,首先設定乙個標準值:pivot

* 再進行雙向掃瞄:大於基準值的pivot的放在右側,小於pivot的放在右側;

* 最後當left>=right時,停止掃瞄;

* *@param a

*@param left

*@param right

*@return

*/public

static

intpatition(int a,int left,int right)

if(leftwhile(leftif(leftreturn left;}}

資料結構 排序 快速排序

對序列 47,31,83,91,57,18,96,16 進行快速排序 首元素為基準 第二趟排序結果是 正確答案 b 你的答案 c 錯誤 18 31 16 47 57 91 96 83 16 31 18 47 57 91 96 83 16 18 31 47 57 91 96 83 16 18 31 4...

資料結構 排序 快速排序

快速排序在平均情況下是效果最好的排序演算法 每趟子表的排序都是從兩頭向中間交替逼近,接下來舉乙個例子 sorry,上面這個圖的6和5的位置畫反啦,快速排序全域性有序,一趟排序便可以確定基準值的最終位置 類別排序方法 最好時間 最壞時間 平均時間 空間複雜度 穩定性序列特徵 適用於插入排序 直接插入排...

資料結構排序 快速排序

快速排序是對氣泡排序的改進,它的基本思想是通過一趟排序將資料分成兩部分,一部分中的資料都比另一部分中的資料小,再對這兩部分中的資料再排序,直到整個序列有序,如下圖所示。快排的遞迴實現 1 include 2 include 3 4intn 5 6 7 分割使樞軸記錄的左邊元素比右邊元素小8 9int...