• 技术文章 >Python技术 >Python基础教程

    python计数排序法是什么

    小妮浅浅小妮浅浅2021-08-09 10:04:02原创2709

    概念

    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计数排序法
    上一篇:python输入身份证号输出出生年月 下一篇:python希尔排序的使用原理

    相关文章推荐

    • python静态方法如何定义• python特殊方法有哪些• python类的继承如何定义?• python类的继承链分析• python常见过滤器的整理• python使用jinja2进行渲染• python事件循环如何使用?• python协程函数如何执行• await在python协程函数的使用• python Task如何在协程调用• python统计字符串字符出现次数• python输入身份证号输出出生年月

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网