【发布时间】:2018-05-03 10:19:50
【问题描述】:
为什么priority_queue 使用堆实现而不使用堆我们也可以只使用向量来实现它。
假设我们使用向量作为队列并保持元素按降序排列。 我们可以将其用作优先队列。
对于插入:我们可以使用二分查找。 Complexity O(logN)
对于删除:这里我们也可以使用二分查找。 Complexity O(logN)
对于顶部元素:O(1)
此外,我们可以在O(1) 时间内访问第 k 个最大元素,而堆则不然。
那么,我们为什么要使用堆来实现优先级队列呢?
【问题讨论】:
-
二分搜索如何插入任何东西?
-
哦!我忘记的那件事
-
这里似乎没有必要投反对票。
-
StackOverflow 的 just posted 一篇关于该网站似乎不太受欢迎的博客文章。人们对这个问题的回答就像一个例子。 @prashantshishodia:很抱歉你遇到了这种情况。
标签: c++ stl priority-queue implementation