使用到的方法:
#直接呼叫方式
defquick_sort
(list1)
:# 遞迴退出條件
length =
len(list1)
if length <=1:
return list1
else
:# 以最後乙個數做基準值
pivot = list1.pop(
) greater, lesser =
,[]for i in list1:
if i > pivot:
else
:return quick_sort(lesser)
+[pivot]
+ quick_sort(greater)
if __name__ ==
'__main__'
: list1 =[20
,40,30
,50,34
,10]print
(quick_sort(list1)
)\
輸入式:
「」"基本的思想是利用遞迴的思想.一開始選擇乙個基準值,大於這個基準值的數存放到乙個列表中,其他值存放到另乙個列表中.
然後這倆個列表進行遞迴操作.
時間複雜度是o(nlog2n) 空間複雜度也是o(nlog2n), 不穩定演算法.
「」"
def
quick_sort
(arr)
:# 遞迴退出的條件
length =
len(arr)
if length <=1:
return arr
else
:# 可以選第乙個元素作為基準值,也可以選最後乙個
pivot = arr.pop(
) greater, lesser =
,[]for element in arr:
if element > pivot:
else
:return quick_sort(lesser)
+[pivot]
+ quick_sort(greater)
if __name__ ==
'__main__'
: arr =
input
('請輸入要排序的數字,以逗號分割'
).strip(
) arr =
[int
(item)
for item in arr.split(
',')
]print
(*quick_sort(arr)
, sep=
',')
參考文獻 快速排序的實現(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...