所以在Python中,当我输入
from heapq import heappush
a=[]
heappush(a,('art zero', 'let3 art zero'))
heappush(a,('own kit dig', 'let2 own kit dig'))
heappush(a,('art can', 'let1 art can'))
print(a)
它给
[('art can', 'let1 art can'), ('own kit dig', 'let2 own kit dig'), ('art zero', 'let3 art zero')]
'自己的装备狗'>不是'艺术零度'吗?为什么heapq中的元组比较在这里不起作用?
堆和排序列表不是一回事。一个堆只保证一个元素的值不大于它的 孩子.
您要比较的两个值是 同胞 值。兄弟姐妹之间的价值观在一个堆里没有特别的关系。唯一可以知道的是,它们都不小于它们的父值。
完整地说,在一个堆中,一个值的子代在index i 在指数 2i+1 和 2i+2.
当你想 heappop
从你的堆中取出值,你 会 让他们在正确的顺序,虽然。