python实现堆排序
- 作者: 格林GG
- 来源: 51数据库
- 2022-08-12
#沿左,右子节点较大者依次往下调整 def heapify( array, i, n ): j = i * 2 + 1 while j < n: if j + 1 < n and array[j] < array[j + 1]: j += 1 if array[i] > array[j]: break array[i], array[j] = array[j], array[i] i = j j = i * 2 + 1 #创建堆 def build_heap( array ): size = len( array ) for i in range( size // 2 - 1, -1, -1 ): heapify( array, i, size ) #大顶堆排序 def heap_sort( array ): size = len( array ) build_heap( array ) #交换堆顶与最后一个结点,再调整堆 for i in range( size - 1, 0, -1 ): array[0], array[i] = array[i], array[0] heapify( array, 0, i ) a = [ -3, 1, 3, 0, 9, 7 ] heap_sort( a ) print( a )
推荐阅读
热点文章
Discord.py(重写)on_member_update 无法正常工作
0
Discord.py 在 vc 中获取用户分钟数
0
discord.py 重写 |为我的命令出错
0
Discord.py rewrite 如何 DM 命令?
0
播放音频时,最后一部分被切断.如何解决这个问题?(discord.py)
0
在消息删除消息 Discord.py
0
如何使 discord.py 机器人私人/直接消息不是作者的人?
0
(Discord.py) 如何获取整个嵌入内容?
0
Discord bot 尽管获得了许可,但不能提及所有人
0
Discord.py discord.NotFound 异常
0
