用python實現快速排序演算法

2021-07-30 17:17:26 字數 716 閱讀 2660

本文主要介紹用python實現基本的快速排序演算法,體會一下python的快排**可以寫得多麼簡潔。

先從待排序的陣列中找出乙個數作為基準數(取第乙個數即可),然後將原來的陣列劃分成兩部分:小於基準數的左子陣列和大於等於基準數的右子陣列。然後對這兩個子陣列再遞迴重複上述過程,直到兩個子陣列的所有數都分別有序。最後返回「左子陣列」 + 「基準數」 + 「右子陣列」,即是最終排序好的陣列。

# 實現快排

defquicksort

(nums):

if len(nums) <= 1:

return nums

# 左子陣列

less =

# 右子陣列

greater =

# 基準數

base = nums.pop()

# 對原陣列進行劃分

for x in nums:

if x < base:

else:

# 遞迴呼叫

return quicksort(less) + [base] + quicksort(greater)

defmain

(): nums = [6,1,2,7,9,3,4,5,10,8]

print quicksort(nums)

main()

輸出:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

用java實現快速排序演算法

第一種方法 從陣列右邊開始 1.選擇乙個比較值c,以陣列的第乙個為例。2.從右邊開始查詢比c小的值,再從左邊開始查詢比c大的值,進行互換。3.當左邊和右邊同時指向乙個值v 比c小,因為是從右邊開始遞減的 會退出當前迴圈。4.交換c和v的值,返回v所在的位址。5.遞迴,以此類推 public clas...

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