首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python实现计数排序

计数排序适合数据量大且数据范围小的数据排序,如对人的年龄进行排序,对考试成绩进行排序等。 计数排序先找到待排序列表中的最大值 k,开辟一个长度为 k+1 的计数列表,计数列表中的所有初始值都为 0。...然后创建一个新列表,根据计数列表中统计的数量,依次在新列表中添加对应数量的 i ,得到排好序的列表。 二、计数排序原理 计数排序的原理如下: 1....三、Python实现计数排序 # coding=utf-8 def counting_sort(array): if len(array) < 2: return array...2, 5, 9, 5, 7, 6] print(counting_sort(array)) 运行结果: [2, 2, 3, 3, 5, 5, 5, 6, 7, 7, 7, 9] 代码中,使用Python...时间复杂度 在计数排序中,需要走访待排序列表中的每一个元素,进行计数,列表长度为 n ,然后需要遍历计数列表,添加数据到新列表中,计数列表长度为 k+1 ,时间复杂度为 T(n)=n+k+1,再乘计数和添加数据的步骤数

92350

Python算法——计数排序

计数排序是一种线性时间复杂度的排序算法,具有稳定性和适用性广泛的特点。本文将详细介绍计数排序的工作原理和Python实现。...计数排序的工作原理 计数排序的基本思想是: 统计数组中每个元素出现的次数,得到元素的频率统计信息。 根据频率统计信息,重建有序数组。 计数排序的关键在于如何统计元素的频率以及如何重建有序数组。...Python实现计数排序 下面是Python中的计数排序实现: def counting_sort(arr): max_val = max(arr) min_val = min(arr)...初始化计数数组 count,用于统计每个元素出现的次数。 统计元素频率,注意需要将元素减去最小值以适配计数数组。 重建有序数组,根据计数数组信息构建有序数组。...示例代码 下面是一个使用Python进行计数排序的示例代码: def counting_sort(arr): max_val = max(arr) min_val = min(arr)

28010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    内存中的PythonPython引用计数指南

    变量是内存引用 Python中的变量是内存引用。如果输入x = [1,2]时会发生什么?[1,2]是对象。 回想一下,一切都是Python中的对象。[1,2]将在内存中创建。...引用计数 现在已经在内存中创建了一个list对象,而且x对该对象进行了引用。那么y=[1,2]和y=x有什么区别? 当输入y=[1,2]时,它将在内存中创建一个新的list对象,并且y将引用它。...[1, 2] print(hex(id(x))) # output: 0x101bea8 print(hex(id(y))) # output: 0x31a5528 而当输入y=x时,等同于告诉Python...引用计数的数目 接下来的问题是,有多少变量引用同一个对象? 错误的用法: 我看到有些人在使用sys.getrefcount(var)时不知道如何传递var,而是向对象添加引用。一起看看下面的例子。

    1.4K20

    计数排序与桶排序python实现

    计数排序与桶排序python实现 计数排序 计数排序原理: 找到给定序列的最小值与最大值 创建一个长度为最大值-最小值+1的数组,初始化都为0 然后遍历原序列,并为数组中索引为当前值-最小值的值...计数排序实现 下面为列表的计数排序 def count_sort(s): """计数排序""" # 找到最大最小值 min_num = min(s) max_num =...max(s) # 计数列表 count_list = [0]*(max_num-min_num+1) # 计数 for i in s: count_list...当数值中有非整数时,计数数组的索引无法分配 桶排序 桶排序原理: 桶排序与计数排序类似,但可以解决非整数的排序 桶排序相当于把计数数组划分为按顺序的几个部分 每一部分叫做一个桶,它来存放处于该范围内的数...,虽然很快,但由于可能产生大量的空位置导致内存增大,尤其是计数排序。

    1.1K10

    【说站】python计数排序法是什么

    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)  # 列表长度...print("排序后列表数据:") for j in range(11):     print("%2d" % data2[j], end="") 以上就是python计数排序法的介绍,希望对大家有所帮助

    43730

    python垃圾回收机制(引用计数

    二、Python中的垃圾回收 在Python中,垃圾回收机制主要是以引用计数为主要手段,以标记清除和分代回收机制作为辅助手段实现的。...我们来看看引用计数+1的情况有什么: (1)对象被创建: 这里实际上123这个对象并没有在内存中新建,因为在Python启动解释器的时候会创建一个小整数池,在-5~256之间的整数对象会被自动加载到内存中等待调用...虽然引用计数必须在每次分配合释放内存的时候加入管理引用计数的操作,然而与其他垃圾回收技术相比,引用计数有一个最大的优点,那就是“实时性”,如果这个对象没有引用,内存就直接释放了,而其他垃圾回收技术必须在某种特殊条件下才能进行无效内存的回收...但是引用计数带来的维护引用计数的额外操作和Python中进行的内存分配和释放,引用的赋值次数成正比的。除此之外,引用计数机制的还有一个最大的软肋–无法解决循环引用带来的问题。...Python将内存根据对象的存活时间划分为不同的集合,每个集合称为一个代,Python将内存分为了3“代”,分别为年轻代(第0代)、中年代(第1代)、老年代(第2代),他们对应的是3个链表,它们的垃圾收集频率与对象的存活时间的增大而减小

    62610

    Python序列元素计数的方法,你知道几种?

    Python脚本语言中,数据结构有许多种,常见的数据类型有:序列,映射与集合三大类型,其中序列又分为可变序列和不可变序列,可变序列有2类:列表(List)与字节数组(Byte Array)对象,不可变序列有...第一次索引字典的key时,由于它不在映射中,因此工厂函数会自动创建一个初始入口,本例整型int的默认值0,如果是list,那么默认值为空列表[],如果是集合,默认是空集合{}等等,然后按照字典的方式对其进行计数...这大概是最简单也是最便利的解决方式了,Counter类也是字典dict的子类,它接受一个可迭代的对象或者映射作为参数,生成的结果可以统计各元素的次数,当然它也可以获取前N最多计数次数,如下所示: 以上就是统计元素频数的几种方法...,如果你有更好的方法,可以在底下留言说明,如果你想获取更多与此相关的Python知识,请查阅Python官方文档。

    1.4K100

    Python 算法基础篇:堆排序和计数排序

    Python 算法基础篇:堆排序和计数排序 引言 堆排序和计数排序是两种高效的排序算法,用于将一个无序列表按照特定顺序重新排列。...计数排序算法概述 计数排序是一种非比较排序算法,它通过统计列表中每个元素的出现次数,然后根据统计结果将元素放回原来的位置,从而得到有序列表。...:上述代码演示了使用计数排序对一个列表进行排序的实例。...计数排序通过统计列表中每个元素的出现次数,然后根据统计结果构建有序列表。通过遍历统计数组,将元素放回原来的位置,实现了计数排序算法。 5....计数排序不涉及比较操作,不需要额外的存储空间,因此在适用范围内具有较高的效率。 总结 本篇博客介绍了堆排序和计数排序两种高效的排序算法。

    11700
    领券