演算法第二章 快速排序

2021-06-21 22:50:20 字數 1022 閱讀 1800

先把快速排序的**實現貼上來,太晚了,過程改天再加上!!!

快速排序就是把乙個數拿出來,然後把小於這個數的扔到一邊,把大於它的扔到一邊,那這個數就在正確的位置上了

然後把這個數的左邊分成乙份,右邊分成乙份,再把這兩份進行剛才的做法,一直不停地這樣做,直到不能再分。

接下來就要說明怎麼把小於它的數扔到一邊,大於它的數扔到一邊

1、拿出第乙個數temp,那第乙個數的位置就空了出來

2、從後向前找,找到小於temp的數,記住位置i,把小於temp的數扔到剛才空出來的位置,那 i 的位置又空了出來,

3、從前向後找,找到大於temp的數,記住位置j,把大於temp的數扔到剛才空出來的位置,那 j 的位置又空了出來,

4、重複2,3,直到向前找跟向後找相遇,把temp放在相遇的位置

5、把陣列從這個數的位置分成兩部分,分別進行1,2,3,4,做完不能再做的時候就停了,^ _ ^ 

第二章 快速排序

快速排序演算法也是基於分治思想的一種排序演算法,它的基本操作即為比較 交換。快速排序演算法的基本思想是從待排序的序列中選取乙個比較標準k 通常選取第乙個元素 然後將其餘元素依次跟k進行比較。在比較的過程中將大於k的元素移到k的後面,將小於k的元素移到k的前面,最後的結果是將原始序列分為兩個子串行,而...

演算法 第二章排序

目錄 初級排序 選擇排序 插入排序 希爾排序 歸併排序 自頂向下排序 自底向上排序 快速排序 優先佇列 初級排序 一 選擇排序 簡述 選擇排序就是遍歷一遍陣列把最小的和第乙個數字交換。第二遍遍歷陣列時候選擇和第二個交換,一次類推。注意不要在for迴圈中用a.length 不然每次都要獲取a.leng...

第二章 2 3 快速排序

本節的主題是快速排序,他可能是應用廣泛的排序演算法了。優點 缺點 非常脆弱,在實現時要非常小心才能避免低劣的效能。與歸併排序的比較 快速排序與歸併排序是互補的 歸併排序將陣列分成兩個子陣列分別排序,並將有序的子陣列歸併並以整個陣列排序 而快速排序將陣列排序的方式則是當兩個子陣列都有序時整個陣列也就自...