快速排序演算法的思想/特點
1.選取乙個數字作為基準,(基數可以隨機取,也可選取首位數字)
2.將數列第一位開始,依次與此數字比較,如果小於此數,將小數交換到左邊,最後達到小於基準數的在左邊,大於基準數的在右邊,分為兩個陣列
3.分別對兩個陣列重複上述步驟
對於大的、亂序串列一般認為是最快的已知排序
穩定性:不穩定
python實現快速排序演算法的**
defpartition(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 分治法的基本思想 分治法的基本思想是 將原問題分解為若干個規模更小但結構與原問題相似的子問...