【发布时间】:2016-09-15 02:32:09
【问题描述】:
我在 DSA 课程期中考试中有这个问题:
考虑一个单链表包含 N 个节点(N > 8),一个方法 f1() 被设计为 从头开始查找第 8 个节点,方法 f2() 旨在从末尾找到第 8 个节点。 f1() 和 f2() 的时间复杂度是多少?
选择一个:
一个。 O(N) 和 O(N)
b. O(1) 和 O(1)
c。 O(1) 和 O(N)
d。 O(N) 和 O(1)
给出的正确答案是c。 O(1) 和 O(N)。但是我认为正确的答案是a。我知道如果 N = 8,从头开始找到第 8 个节点需要 O(1) 时间(只返回尾节点),但在这种情况下 N > 8。有人可以为我解释一下吗?
提前感谢您提供的任何帮助。
【问题讨论】:
-
给出的答案是正确的,你不是。您需要多少次操作才能返回 1000 个节点中的第 8 个节点?超过 1000000?
-
c.是最正确的,但是一个。在技术上也是正确的,因为任何 O(1) 也是 O(N)。
标签: algorithm list data-structures linked-list singly-linked-list