两次遍历链表遍历的时间复杂度

时间:2019-10-17 12:01:38

标签: algorithm linked-list

我知道从头到尾遍历链接列表需要O(n)时间。如果我们两次遍历怎么办?还是O(n),对吗?因为我基本上是O(n + n)= O(2n)〜O(n)。

1 个答案:

答案 0 :(得分:2)

是的。确实,您可以说f(n)是否在O(n)中,f(2n)也是否在O(n)中。它来自符号的定义。

根据定义,存在一个c > 0N0常量,使得f(n) < c * n对应所有n > N0。因此,f(2n) < c' * n代表n >‌ N0 / 2,常数c'。因此,f(2n)也位于O(n)中。

请注意,语句“如果f(n)O(g(n))中,而f(2n)O(g(n))中也是完全错误的!矛盾的例子是当f(n) = g(n) = 2^n时。