python计数排序法是什么

python计数排序法是什么

概念

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,2,7,3,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基础教程