排序演算法思想記錄 快速排序演算法

2021-10-08 15:17:33 字數 767 閱讀 5425

思路

選取陣列中任意乙個數字作為對比位pivot,然後定義兩個指標位left right,分別從陣列開始和結束位置向內掃瞄,每次先動乙個指標位,如right遇到小於pivot的值,將該值存放到左指標處,接著左指標向內位移,遇到大於pivot的值存放至右指標處,依次迴圈到left與right重合,則完成了第一輪快排,此時中間位的左側都是小,右側都是大,然後遞迴左半數組和右半陣列,最後完成所有排序。

**如下

遞迴函式

形參為陣列,陣列開頭 與結尾索引

void

quicksort

(int k,

int left,

int right)

}

qsort為排序函式,返回最後的中間位索引

int

qsort

(int k,

int left,

int right)

k[left]

= pivot;

//最後的中間位放pivot

return left;

}

int

main()

;quicksort

(k,0,9

);for(

int i =

0; i <

10; i++

)}

快速排序演算法思想

一 快速排序遞迴演算法 1 對下列採用快速排序 2 可以把最左邊 4 作為基數 然後分別從兩邊出發進行檢索 一定要從右邊開始 如果從左邊開始的話等下結果為 53241 因為我們要使左邊的數小於基數 從左邊開始 我們檢索是在大於基數那個位置停止 這時和基數交換 使左邊的數大於基數 導致結果出錯 首先要...

排序演算法思想記錄 歸併排序演算法 遞迴

歸併排序演算法思想為每乙個陣列中的數字可以看做是單位為1的有序陣列,將兩個有序陣列進行對比後合併,然後層層對比合併,最後為排序成功的陣列 首先需要將陣列分為兩塊 然後進入遞迴左半數組和右半陣列,繼續分割為兩塊,當陣列長度為1時返回。形參為 陣列 和陣列長度 void mergesort int k,...

排序演算法 快速排序演算法

網際網路的大型公司還在火熱招聘中,參與了一次又一次的筆試,都不通過,我還是太菜!作為程式設計人員,需要邁過去 資料結構與演算法 這個坎,畢竟,筆試不會真的很虧,加油吧,少些水,多點實操。一 快速排序演算法思想 從一組資料中找出乙個基準值,一般是選擇中間值作為基準值,然後從左到右將值與基準值進行比較,...