1、概念
Heapsort 是高效排序算法的另一个例子,其主要优点是无论输入数据如何,它的最坏情况运行时间都是 O(n*logn)。
顾名思义,堆排序在很大程度上依赖于堆数据结构的一个通用实现——优先级队列。
毫无疑问,heapsort 是一种简单的排序算法,比其他简单的实现更高效、更通用。
2、工作原理
就是把堆中的元素一个一个“取出”,加入到排序好的数组中。在进一步解释和重新访问堆数据结构之前,我们应该了解堆排序本身的一些属性。
它是一种就地算法(译者注:就地算法,大多译为“就地算法”,少数也译为“就地算法”。这种算法使用少量的、固定的额外内存空间算法来转换数据。),这意味着它需要恒定数量的内存,即所需的内存不取决于初始数组本身的大小,而是取决于存储该数组所需的内存。
例如,不需要原始数组的副本,也不需要递归和递归调用堆栈。最简单的堆排序实现通常使用第二个数组来存储排序后的值。我们将使用这种方法,因为它更直观,更容易在代码中实现,但它也是 100% 就地的。
堆排序是不稳定的,意味着相等的值不会有相同的相对顺序。对于整数、字符串等基本类型,不会出现这种问题,但是当我们对复杂类型的对象进行排序时,就可能会遇到。
以上就是python堆排序的介绍,希望能对大家有所帮助。
更多Python学习指路:
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Python模块学习 ---- glob模块01/06
- ♥ python高并发怎么解决12/13
- ♥ python如何在numpy中使用size()函数?10/19
- ♥ 如何在python算法中使用哈希表?12/29
- ♥ 什么是 python rabbitmq01/09
- ♥ PyThon基础教程:python删除文件详细教学10/11
内容反馈