來源:
<啊哈算法>
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