python實現快速排序演算法

2021-10-06 06:15:02 字數 984 閱讀 5405

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 分治法的基本思想 分治法的基本思想是 將原問題分解為若干個規模更小但結構與原問題相似的子問...