介绍
小编给大家分享一下python如何创建堆,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!
1,说明
创建堆有两种基本方法:heappush()和heapify ()。
当使用heappush()时,当新元素添加时,堆得顺序被保持了。
如果数据已经在内存中,则使用heapify()来更有效地重新排列列表中的元素。
2,实例
import heapq 得到heapq_showtree import  show_tree 得到heapq_heapdata import 数据 , 时间=heap [] 打印(& # 39;random : & # 39;,,数据) print () , for n 拷贝数据: 打印才能(& # 39;add {:祝辞;3}:& # 39;.format (n)) heapq.heappush才能(堆,n) show_tree才能(堆) ,, #,输出 :#,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如何创建堆”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!