python實現快速排序演算法

2022-08-19 00:39:45 字數 872 閱讀 1353

快速排序演算法的思想/特點

1.選取乙個數字作為基準,(基數可以隨機取,也可選取首位數字)

2.將數列第一位開始,依次與此數字比較,如果小於此數,將小數交換到左邊,最後達到小於基準數的在左邊,大於基準數的在右邊,分為兩個陣列

3.分別對兩個陣列重複上述步驟

對於大的、亂序串列一般認為是最快的已知排序

穩定性:不穩定

python實現快速排序演算法的**

def

partition(arr, low, hight):

i = low - 1

for j in

range(low, hight):

if arr[j] <=arr[hight]:

i = i + 1arr[i], arr[j] =arr[j], arr[i]

arr[i + 1], arr[hight] = arr[hight], arr[i + 1]

return

idef

quick_sort(l, low, hight):

if low key_index =partition(l, low, hight)

quick_sort(l, low, key_index)

quick_sort(l, key_index + 1, hight)

else

:

return

l = [5,8,1,3,15,12,0]

quick_sort(l, 0, len(l) - 1)

print("

after sort:

", l)

#執行後的結果為:after sort: [0, 1, 3, 5, 8, 12, 15]

排序演算法 快速排序Python實現

coding utf 8 file quick sort.py author zhang san time 2020 7 17 18 25 des 快速排序 每次選擇乙個pivot,然後以這個pivot為中心,兩邊分別存放比其大或者小的值,依次 迭代進行劃分,最終完成排序 這裡一定要注意指標滑動的方...

演算法 排序 python 實現 快速排序

主要分為兩個子演算法,partition a,p,r 以a r 為基準對陣列進行乙個劃分,比a r 小的放在左邊,比a r 大的放在右邊。quicksort a,p,r 是快速排序的子程式,呼叫劃分程式對陣列進行劃分,然後遞迴地呼叫quicksort a,p,r 以完成快速排序的過程。快速排序的最差...

Python實現快速排序演算法

快速排序 quicksort 1 演算法思想 快速排序是c.r.a.hoare於1962年提出的一種劃分交換排序。它採用了一種分治的策略,通常稱其為分治法 divide and conquermethod 1 分治法的基本思想 分治法的基本思想是 將原問題分解為若干個規模更小但結構與原問題相似的子問...