【发布时间】:2018-12-02 02:01:19
【问题描述】:
如果我想将优先级队列存储为排序的双向链表,那么以下时间复杂度不正确吗?
-
插入一个新条目:O(n)
因为我必须遍历链表的每个元素以找出它应该插入的位置,以便我的列表始终排序。
-
获取最大优先级的元素:O(1)
我可以让我的列表按优先级升序/降序排序,并保存列表的头部和尾部。如果这是真的,那么获取具有最大优先级的元素应该是 O(1),因为我们知道它的位置。
-
删除具有最大优先级的元素:O(1)
同上逻辑
【问题讨论】:
标签: big-o priority-queue doubly-linked-list