python排序演算法 三 快速排序

2021-09-24 22:51:57 字數 779 閱讀 9446

:"""快速排序"""

iflen

(data)

>=2:

# 遞迴入口及出口

mid = data[0]

# 選取基準值,也可以選取第乙個或最後乙個元素, 也可以選擇中間的值

left, right =

,# 定義基準值左右兩側的列表

data.remove(mid)

# 從原始陣列中移除基準值

for num in data:

if num >= mid:

else

:return quick_sort(left)

+[mid]

+ quick_sort(right)

else

:return data

# 示例:

array =[2

,3,5

,7,1

,4,6

,15,5

,2,7

,9,10

,15,9

,17,12

]print

(quick_sort(array)

)# 輸出為[1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 9, 9, 10, 12, 15, 15, 17]

Python排序演算法之快速排序

從列表中抽取乙個元素p 假定為第乙個 使p歸位,保證左邊的元素都比p小,右邊的元素都比p大。再遞迴呼叫完成排序 最壞情況 o n 2n 2 n2 平均情況 o nlogn 最好情況 o nlogn 最壞情況 o n 平均情況 o logn 不穩定 較複雜 一開始,從列表中隨機抽取乙個數與第乙個元素互...

排序演算法 快速排序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 以完成快速排序的過程。快速排序的最差...