嚴蔚敏版資料結構 演算法10 6(快速排序)

2021-10-19 17:52:42 字數 979 閱讀 1393

在看**的同時弄懂原理:

每一次單趟的排序,將確定乙個數值的最終位置,也就是用low和high遍歷整個陣列,並將前後的大小互換(具體來說是,將後面較小的換到前面,前面較大的換到後面)返回值是low也就是低位下邊,其實就是第一次排序之後樞軸值所處的位置,在後續遞迴的過程中我們可以用這個值來對陣列進行分治(前一半後一半)的排序。

下面的**和嚴版的有些區別,因為調的是陣列而不是排序表的資料結構,下面第二段**是按照嚴版書上的演算法實現。

#include

using

namespace std;

intpart

(int nums,

int low,

int high)

nums[low]

= key;

return low;

}void

quick_sort

(int nums,

int low,

int high)

}int

main

(void

)quick_sort

(nums,0,

9);//下標少一位

for(

int i =

0;i <

10;i++

)return0;

}

第二段**:

這裡給出了哨兵位,原理是一樣的。

/*演算法 10.6 快速排序*/

intpartition

(sortsqlist &l,

int low,

int high)

l.r[low]

= l.r[0]

;return low;

}void

qsort

(sortsqlist &l,

int low,

int high)

}

嚴蔚敏版資料結構 演算法2 4

嚴版資料結構 p23 演算法 2.4 include include include f c kind project datastruct privacy privacy.h intmain for i 1 i 11 i if listinsert sq l,i,i 10 1 i 1 while ...

嚴蔚敏版資料結構 演算法2 7

include include include f c kind project datastruct privacy privacy.h void virgin sqlist l int main void void virgin sqlist l 演算法2.7 合併順序表,並將元素按從小到大排序...

資料結構 嚴蔚敏版 緒論

資料 所有能被輸入到計算機中,且能被計算機處理的符號的集合。資料元素 資料中的乙個 個體 資料結構中討論的基本單位。資料結構 帶結構的資料元素的集合。資料的邏輯結構可以分為 1.集合結構 資料元素關係 結構之間的元素同屬於乙個集合體 2.線性結構 資料元素關係 結構之間的元素存在一對一的關係 3.樹...