:"""快速排序"""
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
(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 以完成快速排序的過程。快速排序的最差...