优先队列的时间?

时间:2012-06-21 17:23:36

标签: data-structures computer-science

  • 优先级列表构建n个节点列表需要多长时间?在上述时间里如何实现这一目标?

  • delete-min 函数(检索最小元素并从列表中删除)需要多长时间?在上述时间里如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

取决于您如何构建优先级队列。如果您正在使用堆结构,则需要nlogn来构建优先级队列。我记得构建最小堆的方法也可以在O(N)中完成。请查看CLRS以获取更多信息。

查看堆结构以了解它如何构建堆结构。基本上你的比较器将是节点的优先级。

delete-min需要O(logn)。再看一下堆数据结构。

http://en.wikipedia.org/wiki/Heap_%28data_structure%29

您还可以使用链接列表作为优先级队列。使用链表,删除min也是常量。但是,根据您的输入,构建优先级队列可能会达到O(N ^ 2)。