具有更新能力的优先队列

我正在尝试以高效的复杂性实施员工队列。

当我将雇员插入队列时,我提供其ID号和分数。 我想保持一个按员工分数升序排列的队列。

到目前为止,可以使用二进制堆实现的优先级队列解决问题,但是我需要能够从队列中删除员工,并通过其ID号更新员工。 据我所知,二进制堆不支持删除或更新元素的有效方法。

更新-O(n)用于搜索元素+ O(1)用于对其进行更新。

删除-O(n)用于搜索元素+ O(nlg(n))用于重建堆。

有没有更适合该问题的数据结构?

评论