在看**的同時弄懂原理:
每一次單趟的排序,將確定乙個數值的最終位置,也就是用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.樹...