快速排序的Python實現

2021-09-28 13:08:24 字數 1122 閱讀 1159

任意選乙個資料作為基準資料,然後將所有比它小的數都放到它的左邊,所有比它大的數都放到它的右邊

這裡以乙個列表作為例子

[45,34,12,56,87,77,47,23]

首先選擇45為基準資料

比45小的有:34,12,23

比45大的有:87,77,47,56

所以第一次排序就是

[34,12,23,45,87,77,47,56]

再將45左邊的看成乙個列表,右邊的看成另乙個列表,即

[34,12,23],[87,77,47,56]

同理找基準值:34,87

快速排序:

[12,23,34],[56,77,47,87]

。。。。。。

[12,23],[34],[45],[56,77,47],[87]

[12],[23],[34],[45],[47],[56],[77],[87]

最終結果就是

[12,23,34,45,47,56,77,87]

def

quick_sort

(alist,start,end)

:if start>=end:

return

mid=alist[start]

low=start

high=end

while low

while low

>mid:

high-=

1 alist[low]

=alist[high]

while low

<=mid:

low+=

1 alist[high]

=alist[low]

alist[low]

=mid

quick_sort(alist,start,low-1)

quick_sort(alist,low+

1,end)

alist=[45

,34,12

,56,87

,77,47

,23]quick_sort(alist,0,

len(alist)-1

)print

(alist)

結果:

快速排序的實現(python)

usr bin env python3 coding utf 8 import random 快速排序基礎 defpartition a,p,r x a r i p 1 j p while j r if a j x i 1 temp a i a i a j a j temp j 1 i 1 temp...

快速排序的python實現

執行過程中,i 之前 含 的元素都比 a r 小,之後的比 a r 大。即 p i 的元素比 a r 小,其後a i 1 a j 1 的元素比a r 大。最後,交換a i 1 與a r def quicksort a,p,r if p r q partition a,p,r quicksort a,...

python 快速排序的實現

快速排序 quicksort 是對氣泡排序的一種改進。快速排序演算法通過多次比較和交換來實現排序,其排序流程如下 def quick sort origin items,comp lambda x,y x y items origin items quick sort items,0,len ite...