def Count_Sort(A,start_num,end_num):
C = []
B = []
for i in range(start_num, end_num+ 1):
C.append(0) # 初始化 C
for j in range(len(A)):
C[A[j]] = C[A[j]] + 1 # 统计 start_num 到 end_num 重复次数
for i in range(start_num, end_num + 1):
if C[i] >= 1: # 只把对应i的个数大于等于1的打印出来
for j in range(C[i]): # 循环 C[i]次, 打印i的值
B.append(i)
return B
A = [1,2,3,5,4,6,2,4]
start_num = 1
end_num= 6
print Count_Sort(A, start_num, end_num)
有什么不对之处,欢迎大牛们拍砖。 回头有时间学习一下其他牛人写的计数算法。