Python 實現的快速排序輸入式和非輸入式

2021-10-24 01:45:00 字數 1377 閱讀 3930

使用到的方法:

#直接呼叫方式

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...