python计数排序法是什么

美女程序员鼓励师

概念

1、计数排序的主要思想是将待排序数据值转化为键,存储在额外开辟的数组空间中。

2、计数排序要求输入的数据必须是有确定范围的整数,因此计数排序法适用于量大范围小的数据。

实例

def count_sort(data, maxValue):  # 定义计数排序,data是列表数据,maxValue表示值

    bucket_len = maxValue + 1  # 定义桶的长度是值加1,桶号从0开始

    bucket = [0] * bucket_len  # 初始化桶

    count = 0  # 计数个数

    arr_len = len(data)  # 列表长度

    for i in range(arr_len):  # 遍历列表

        if not bucket[data[i]]:  # 列表数据不为桶号

            bucket[data[i]] = 0  # 这时初始化从0将列表数据做桶号

        bucket[data[i]] += 1  # 桶号依次加1

    for j in range(bucket_len):  # 遍历桶

        while bucket[j] > 0:  # 将列表数据放在对应桶号内

            data[count] = j

            count += 1  # 计数个数加1

            bucket[j] -= 1  # 个数减一,下一个相同的元素往前排

    return data  # 返回排序后的列表

 

 

data = [1, 2, 4, 1, 3, 5, 2, 2, 7, 3, 4]

print("排序前列表数据:")

for i in range(11):

    print("%2d" % data[i], end="")

print()

data2 = count_sort(data, 7)  # 调用计数排序函数

print("排序后列表数据:")

for j in range(11):

    print("%2d" % data2[j], end="")

以上就是python计数排序法的介绍,希望对大家有所帮助。更多Python学习指路:python基础教程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

以上是 python计数排序法是什么 的全部内容, 来源链接: utcz.com/z/544579.html

回到顶部