Python 資料結構與演算法 桶排序

2022-08-24 14:12:11 字數 555 閱讀 1253

#

簡單的桶排序

defbucksort(a):

bucks = dict() #

定義乙個桶變數,型別為字典

for i in

a: bucks.setdefault(i,)

#每個桶預設為空列表

往對應的桶中新增對應相同元素

print

(bucks)

a_sort =

for i in range(min(a), max(a)+1):

if i in bucks: #

檢查是否存在對應數字的桶

a_sort.extend(bucks[i]) #

合併桶中資料

return

a_sort

a = [2,3,5,4,6,7,3,3,0,8,5]

a =bucksort(a)

print(a)

#列印結果:

[0, 2, 3, 3, 3, 4, 5, 5, 6, 7, 8]

Python 資料結構與演算法 快排

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

資料結構與演算法 桶排序

與基數排序法一樣,桶排序也是一種排序的思想。待排資料的值必須在乙個範圍內,然後把這個值域空間劃分為若干區塊,每乙個對應乙個桶,把待排陣列放入到合適的桶中,再對桶內的資料採用任意一種方式排序。整個時間複雜度分為兩部分,第一部分是入桶,為on,第二部分則是所有桶內排序的時間。演算法導論 中證明了這個整體...

資料結構與演算法 桶排序

桶排序可以看成是計數排序的公升級版,它將要排的資料分到多個有序的桶裡,每個桶裡的資料再單獨排序,再把每個桶的資料依次取出,即可完成排序。我們拿一組計數排序啃不掉的資料 500,6123,1700,10,9999 來舉例。第一步,我們建立 10 個桶,分別來裝 0 1000 1000 2000 200...