桶排序算法-python實現

來源:

<啊哈算法>


5個數字 5 3 5 2 8需要排序.

用到了桶排序思路

l=[0,0,0,0,0,0,0,0,0,0]

p=[5,3,5,2,8]

for i in range(10):
    for j in p:
        if i==j:
            l[i]+=1
print l

new_l=[]
for i in range(10): #核心點在這裏
    if l[i]!=0:
        for j in range(l[i]):
            new_l.append(i)
print new_l

簡化成:對一下,對一下,如果值不爲0,就輸出對應的index.如值爲1,輸出一次該index,如果值爲2輸入兩次值對應的index.

[0, 0, 1, 1, 0, 2, 0, 0, 1, 0]


從大到小排序:

將一個序列反序的輸出:[如我已經從小到大排序好了一個序列,我計算出序列長度,反序的輸出]

In [1]: l=range(10)
In [2]: l
Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [3]: for i in range(10):
   ...:     print l[9-i]
   ...:     
9
8
7
6
5
4
3
2
1
0


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章