📜  门| GATE-CS-2016(套装2)|问题 25

📅  最后修改于: 2021-09-25 05:11:13             🧑  作者: Mango

N 个项目存储在一个已排序的双向链表中。对于删除操作,提供指向要删除的记录的指针。对于减少键操作,提供指向要对其执行操作的记录的指针。算法按此顺序对列表执行以下操作:
Θ(N) 删除,O(log N) 插入,O(log N) 查找,和 Θ(N) 减少键

所有这些操作加在一起的时间复杂度是多少
(A) O(Log 2 N)
(B) O(N)
(C) O(N 2 )
(D) Θ(N 2 Log N)答案: (C)
解释:减少键操作的时间复杂度是 Θ(1),因为我们有指向我们必须执行操作的记录的指针。但是,我们必须保持双向链表的排序,并且在减少键操作之后我们需要找到键的新位置。这一步将花费 Θ(N) 时间,并且由于存在 Θ(N) 次减键操作,时间复杂度变为 O(N²)。

请注意,其他三个操作的下限比这一个低。
这个问题的测验