排序算法之计数排序
Posted shenjianping
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法之计数排序相关的知识,希望对你有一定的参考价值。
一、原理
计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。
步骤:
(1)创建关键值(计数列表)
(2)遍历序列中的每一个元素,相应的计数器增加1
(3)重新将元素存储列表中
二、实现
假如现在有一个列表,已知列表中的数的范围在0-200之间,请设计算法将列表进行排序。
def countSort(li,max_num): count=[0 for i in range(max_num+1)] # for num in li: count[num]+=1 #num表示数值,也表示列表索引,count[num]表示num的个数 li.clear() for i,t in enumerate(count): #i表示数值,t表示数值的个数 for j in range(t): li.append(i) import random li=[random.randint(0,200) for i in range(10000)] countSort(li,200) print(li)
参考:https://github.com/hustcc/JS-Sorting-Algorithm/blob/master/8.countingSort.md
以上是关于排序算法之计数排序的主要内容,如果未能解决你的问题,请参考以下文章