演算法導論上的快速排序採用分治演算法,步驟如下:
1.選取乙個數字作為基準,可選取末位數字
2.將數列第一位開始,依次與此數字比較,如果小於此數,將小數交換到左邊,最後達到小於基準數的在左邊,大於基準數的在右邊,分為兩個陣列
3.分別對兩個陣列重複上述步驟
其中一次排序步驟如下:
偽碼實現:
quicksort(a,p,r)if ppython實現**如下:
def quicksort(arr,firstindex,lastindex):
if firstindex執行結果如下:
initial array:
[1, 4, 7, 1, 5, 5, 3, 85, 34, 75, 23, 75, 2, 0]
result array:
[0, 1, 1, 2, 3, 4, 5, 5, 7, 23, 34, 75, 75, 85]
效能分析以後做
python實現快速排序
快速排序的思想是任意選取要排序的list中的乙個數pivot,每次遞迴時將list按照 小於pivot的,pivot,大於pivot的 排序,再對小於和大於pivot部分分別快速排序。function quicksort list select a pivot foreach x in list i...
Python實現快速排序
快速排序的思路 numlist 6,8,1,4,3,9,5,4,11,2,2,15,6 1 設 keys 又稱為監視哨 等於 numlist 0 i等於0 j等於len numlist 1,即如下 numlist 6,8,1,4,3,9,5,4,11,2,2,15,6 keys 6 i 0 j2 1...
python實現快速排序
coding utf 8 實現對列表中的數進行快速排序 importrandom 隨機生成乙個有1000整數的列表 number random.randint 1 1000 foriinrange 1000 列印原始列表 printnumber 單個列表快速排序函式 返回一次排序後的列表和所選取基數...