【发布时间】:2018-04-12 23:09:18
【问题描述】:
我正在尝试实现一种算法来解决涉及从最大堆中间删除特定元素的天际线问题。我目前的做法是maxheap.remove(index),但我必须跟进heapify(maxheap),否则订单会被取消。我知道在java中你可以使用treemap之类的东西来做到这一点。在 python 中,有没有比调用两个单独的方法更有效地做到这一点,每个方法都需要 O(n) 时间?
【问题讨论】:
-
你指的是什么堆的实现?如果它包含
remove运算符(表示对堆元素的显式访问),它也可能包含change priority一个。 -
@MBo 在 Python 中,明显的实现是标准库中的 heapq。
标签: python algorithm python-3.x heap priority-queue