挑戰二 第七章高等排序(三)

2021-08-18 10:13:16 字數 497 閱讀 6892

快速排序

很好理解?類似於歸併排序,歸併排序每次將陣列分成兩個有序陣列最後再將一步一步把小的陣列「整合」起來

快速排序的本質就是將一整個陣列不斷縮小範圍排序,只不過因為在分割的時候就已經排序前面的一定比分界值小,後面的一定比分界值大,然後一步一步分下去直至最後就已經排好,不需要像歸併排序一樣手動合併。

平均時間複雜度為o(nlogn)。

需要注意的是快速排序的規定值的選取,最壞的情況將把複雜度高達o(n²).......這我就不仔細找了。。因為並沒有遇到這樣的題。。還是先乖乖的就拿最後乙個值當分界值好了。。。。

實現**

int partition(card a,int n,int p,int r){

int i,j;

card t,x;

x=a[r];

i=p-1;

for(j=p;j其實就是在分割下面多了乙個呼叫的函式,先將大陣列分割成兩個小陣列再分別將兩個小陣列進行分割處理。知道不可再分割已經將整個陣列排好。

第七章 排序

排序就是將原本無序的序列重新排列成有序的序列 如果待排序表中有兩個元素ri rj,其對應的關鍵字keyi keyj,且在排序前ri在rj前面,如果使用某一排序演算法排序後,ri仍然在rj的前面,則稱這個排序演算法是穩定的,否則稱排序演算法是不穩定的。首先以乙個元素為有序的序列,然後將後面的元素依次插...

第七章 快速排序

快速排序的描述 與歸併排序一樣,快速排序也使用了分治思想。具體步驟 分解 陣列 a p.r 被劃分為兩個子陣列 可能為空 a p.q 1 和 a q 1.r 使得 a p.q 1 中的每乙個元素都小於等於 a q 而 a q 小於等於 a q 1.r 中的每個元素。解決 通過遞迴呼叫快速排序,對子陣...

python第七章 python教程(第七章)

字典和集合 字典是python中唯一,乙個對映型別 如何建立乙個字典,如下 dict dict 滲透 網路安全 怎麼理解字典呢?現實生活中的字典可以通過首字母進行查詢要查詢的漢子,python也可以這樣理解,通過 前的元素查詢到冒號後的元素。為什麼說字典是唯一乙個對映型別呢?看圖。對映型別區別與序列...