概念
1、计数排序的主要思想是将待排序数据值转换为键,并存储在额外开放的数组空间中。
2、计数排序要求输入的数据必须是具有一定范围的整数,因此计数排序法适用于大范围小的数据。
实例
defcount_sort(data,maxValue):#定义计数排序,data是列表数据,maxValue表示值 bucket_len=maxValue+1#定义桶的长度值加1,桶号从0开始 bucket=[0]*bucket_len#初始化桶 count=0#计数个数 arr_len=len(data)#列表长度 foriinrange(arr_len):#遍历列表 ifnotbucket[data[i]]:#列表数据不是桶号 bucket[data[i]]=0#此时,从0开始,将列表数据作为桶号 bucket[data[i]]+=1#桶号依次加1 forjinrange(bucket_len):#遍历桶 whilebucket[j]>0:#将列表数据放在相应的桶号内 data[count]=j count+=1#计数个数加1 bucket[j]-=1#个数减一,下一个相同的元素向前排列 returndata#返回排序后的列表 data=[1,2,4,1,3,5,2,7,4] print("排序前列表数据:") foriinrange(11): print("%2d"%data[i],end="") print() data2=count_sort(data,7)#调用计数排序函数 print("排序后列表数据:") forjinrange(11): print("%2d"%data2[j],end="")
以上是python计数排序法的介绍,希望对大家有所帮助。更多Python学习指南:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。