具有 insert/delmin 操作的优先级队列(摊销)运行 次

Priority queue with insert/delmin operations in constant (amortized) running times

如果我知道,是否有可能实现一个具有 O(1)(摊销)运行 操作时间 insertdelete_min(删除优先级最低的元素)的优先级队列优先级范围?

我想到了斐波那契堆的一些修改,但由于 delete_min 的 O(logn) 摊销 运行 时间,它似乎不起作用。

类似于桶排序的方法可以完成这项工作吗?

您可以创建一个散列 table,将每个优先级映射到它的当前频率。

当你insert一个优先级时,你平均可以在常数时间内完成:你找到条目并增加优先级的频率。

当你delete_min你必须遍历散列table找到非零频率的最小优先级,然后递减这个频率。但是由于您有固定数量的不同优先级值,因此它也会在固定时间内运行。如果优先级数很大,还是有理论价值的。