def quicksort
(data,left,right):if
(right-left)==1
: #待排序集合中只有兩個元素,直接比較大小
if data[left]
> data[right]
: #左大於右則互換位置
data[left]
,data[right]
= data[right]
,data[left]
elif left#待排序集合中元素多餘兩個
i=left
j=right
#i,j分別是左右指標
temp = data[left]
#以左邊第乙個為比較基準
while iwhile i>temp:
j -=
1 #交換位置
if idata[i]
= data[j]
i +=
1#左指標右移
while ii +=
1if idata[j]
= data[i]
j -=
1#右指標左移
data[i]
= temp#此時i=j
quicksort
(data,left,i-1)
quicksort
(data,i+
1,right)
if __name__ ==
'__main__'
: data =[6
,7,78
,26,35
,5,10
]quicksort
(data,0,
6)print
(data)
[output] data=[5
,6,7
,10,26
,35,78
]
排序演算法 快速排序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 分治法的基本思想 分治法的基本思想是 將原問題分解為若干個規模更小但結構與原問題相似的子問...