您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
小编给大家分享一下python如何创建堆,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
创建堆有两种基本方法:heappush() 和 heapify()。
当使用heappush()时,当新元素添加时,堆得顺序被保持了。
如果数据已经在内存中,则使用 heapify() 来更有效地重新排列列表中的元素。
import heapq from heapq_showtree import show_tree from heapq_heapdata import data heap = [] print('random :', data) print() for n in data: print('add {:>3}:'.format(n)) heapq.heappush(heap, n) show_tree(heap) # output # random : [19, 9, 4, 10, 11] # # add 19: # # 19 # ------------------------------------ # # add 9: # # 9 # 19 # ------------------------------------ # # add 4: # # 4 # 19 9 # ------------------------------------ # # add 10: # # 4 # 10 9 # 19 # ------------------------------------ # # add 11: # # 4 # 10 9 # 19 11 # ------------------------------------
知识点扩展:
创建最大(小)堆
二叉堆本质上是一种完全二叉树,存储方式并不是链式存储,而是顺序存储
堆操作:插入(叶子节点上调),删除(堆顶元素下沉)
堆创建:非叶子节点下沉(从最后一个非叶子节点开始)
最小堆:
最小堆任何一个父节点的值,都小于等于它左右孩子节点的值
创建过程:如果非叶子节点值大于其子节点,将其下沉
最大堆:
最大堆任何一个父节点的值,都大于等于它左右孩子节点的值。
创建过程:如果非叶子节点值小于其子节点,将其下沉
看完了这篇文章,相信你对“python如何创建堆”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。