資料結構 快速排序

2021-07-11 05:26:13 字數 1021 閱讀 1435

快速排序是一種平均效能比較好的排序方法,它的平均效能是ο(nlogn)。快速排序的演算法思想是:

1、選取待排序記錄中的一項作為qvoit,即樞軸,以此作為基準,首先將待排序序列分為兩類,一類是比排序序列大的,在基準的右邊。一類是比基準小的,在基準的左邊,當然這裡排序的出發點是從左到右非遞減序列。

2、對左邊序列重複步驟一的過程;即遞迴呼叫函式;

3、對右邊序列重複步驟一的過程;即遞迴錶用;

下面以一組序列作為講解:

說明:1、首先index代表陣列的下標,value對應該下標下的值

2、選取4作為基準,然後開始篩選。low從-1開始遞增,high從7開始遞減,分別與基準4作比較。找到待排序序列中比基準數字小的第乙個分點以及比基準數字大的第乙個分點,在例中即下標為1和下標5的點。因此在這裡將9和3進行互換,得到上圖的第乙個結果:2 3 1 7 5 9 8 4;

3、繼續進行2的步驟。low從2開始,high從5開始,最後找到下乙個分點,此時high=1,low=2,由於low>high,因此第一次重排結束。

4、將右邊序列的第乙個數字和4進行交換,得到了第一次以4為基準的結果,即:2 3 1 4 5 9 8 7

5、對左邊序列2 3 1 和右邊序列5 9 8 6進行遞迴,重複1 2 3 4過程。

最後的實現**如下:

#includeusing namespace std;

templatevoid quicksort(t *sort_array, int left, int right)

while (sort_array[low] < qvoit);

do while (sort_array[high] > qvoit);

if (low

資料結構 排序 快速排序

對序列 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...