本文主要介紹用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 以完成快速排序的過程。快速排序的最差...