9
是否存在带有提取的优先级队列?
有很多数据结构实现了优先级队列接口: 插入:将元素插入结构 Get-Min:返回结构中的最小元素 Extract-Min:删除结构中的最小元素 实现此接口的常见数据结构是(min)堆。 通常,这些操作的(摊销)运行时间为: 插入:(有时)O(log n )O(1 )O(1)\mathcal{O}(1)O(对数n )O(logn)\mathcal{O}(\log n) Get-Min:O(1 )O(1)\mathcal{O}(1) 提取最小值:O(对数n )O(logn)\mathcal{O}(\log n) 例如,斐波那契堆可达到这些运行时间。现在,我的问题是: 是否存在具有以下(摊销)运行时间的数据结构? 插入:O(对数n )O(logn)\mathcal{O}(\log n) Get-Min:O(1 )O(1)\mathcal{O}(1) 提取最小值:O(1 )O(1)\mathcal{O}(1) 如果我们可以在给定排序输入的情况下在时间内构造这样的结构,那么我们可以例如在比使用“通常”优先级队列的路口快得多。o (nO(n )O(n)\mathcal{O}(n)ø (Ñ日志ñ)o(nlogn)o\left(\frac{n}{\log n}\right)