資料結構之桶排序(python實現)

2021-10-23 22:32:57 字數 1308 閱讀 9334

#-*- coding : utf-8 -*-

#每乙個桶代表乙個區間範圍,裡面可以承載乙個或多個元素

'''1.建立桶,並確定每乙個桶的區間範圍

2.遍歷原始數列,把元素對號入座放入各個桶中

3.對每個桶內部的元素分別進行排序

4.遍歷所有的桶,輸出所有元素

'''def

buckersort

(string)

:#1.得到數列的最大值

max1 = string[0]

for i in

range

(len

(string)):

if(max1 < string[i]):

max1 = string[i]

#得到數列的最小值

min1 = string[0]

for i in

range

(len

(string)):

if(min1 > string[i]):

min1 = string[i]

n = max1 - min1

#2.初始化並填充桶

bucketnum=

len(string)

bucketlist=[[

0for i in

range

(bucketnum)

]for j in

range

(bucketnum)

]for i in

range

(bucketnum)

: num=

int(

(string[i]

-min1)

*(bucketnum-1)

/n) bucketlist[num]

)#3.對每個桶內部進行排序

for i in

range

(len

(bucketlist)):

bucketlist[i]

.sort(

)#4.輸出全部結果

for i in

range

(len

(bucketlist)):

print

(bucketlist[i]

)string=

[4.12

,6.421

,0.0023

,3.0

,2.123

,8.122

,4.12

,10.09

]buckersort(string)

常用資料結構之桶式排序

關於桶式排序,其實以前見到過,當成了乙個排序技巧來記了。具體就是,有乙個序列,有n個數,並且每個數取值範圍是0 100。問如何快速的進行排序。那麼我們可以很容易想到,就是在開乙個大小為一百的陣列,並且初始化為0,然後遍歷所給的序列,比如遍歷到了23,就把23放入新開陣列下標為23的位置上,具體表現在...

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

簡單的桶排序 defbucksort a bucks dict 定義乙個桶變數,型別為字典 for i in a bucks.setdefault i,每個桶預設為空列表 往對應的桶中新增對應相同元素 print bucks a sort for i in range min a max a 1 i...

資料結構排序系列詳解之九 桶排序

基本思想 假定輸入是由乙個隨機過程產生的 0,m 區間上均勻分布的實數。將區間 0,m 劃分為n個大小相等的子區間 桶 將n個輸入元素分配到這些桶中,對桶中元素進行排序,然後依次連線桶輸入0 a 1.n 桶 關鍵字 對映函式 bindex f key 其中,bindex 為桶陣列b的下標 即第bin...