- 计数排序算法动态图
- 计数排序算法的原理
计数排序算法原理其实挺简单的,就是首先找出一串数的最小值和最大值,然后将在这个区间的所有整数均统计在给定的数列中出现了次数,然后从最小值开始到最大值,按照出现次数重新存放,即完成排序
代码如下:
def count_sort(data):
min_v=data[0]
max_v=data[0]
for elem in data:
if elem<min_v:
min_v=elem
if elem>max_v:
max_v=elem
index_to_num={}
for elem in data:
if elem not in index_to_num.keys():
index_to_num[elem]=1
else:
index_to_num[elem]+=1
result=[]
for i in range(min_v,max_v+1):
if i in index_to_num.keys():
for j in range(index_to_num[i]):
result.append(i)
return result
if __name__=="__main__":
data=[10,9,8,7,6,5,4,3,2,1,0]
data=count_sort(data)
print("经计数排序后结果:",data)
执行结果如下:
经计数排序后结果: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]