python语法如何实现堆排序

391 ℃

由于在python中堆的特性是最小堆,堆顶的元素始终是最小的,可以将序列转换成堆之后,再使用pop弹出堆顶元素来实现从小到大排序。具体实现代码如下:

from heapq import heappush, heappop, heapify

def heapsort(iterable):
  h = []
  for value in iterable:
    heappush(h, value)
  return [heappop(h) for i in range(len(h))]
 
def heapsort2(iterable):
  heapify(iterable)
  return [heappop(iterable) for i in range(len(iterable))]
 
data = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]
 
print(heapsort(data))
print(heapsort2(data))

#输出
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Mac电脑安装Python软件后怎么查看版本号(附下载地址)

Python语法PDF转Word只需要4行代码

Python语法出现keyerror错误解决方法

python语法中的import语句的正确用法

如何利用Python中生成合成数据的三个库

标签: python堆排序, python语法

上面是“python语法如何实现堆排序”的全面内容,想了解更多关于 后端开发 内容,请继续关注web建站教程。

当前网址:https://m.ipkd.cn/webs_4253.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

java如何实现强制类型转换(附代码)
mysql查询根据时间查询数据(今天/昨天/n天内/第n天等)
node.js输出中文出现乱码怎么解决
python中cubes出现ValueError(reference)错误的解决方法
js如何利用setTimeout实现倒计时