如何计算复杂性?

时间:2011-02-11 11:53:12

标签: algorithm complexity-theory

我是算法的初学者,我不知道如何计算复杂性。

Example:
int x=10,y;
y = x;

上面例子的复杂性是什么?

由于

2 个答案:

答案 0 :(得分:2)

如果您参考O-Notation,那应该是O(1)。

答案 1 :(得分:2)

Big O Notation中,这对应于O(1),这基本上意味着操作的运行时间是恒定的或至少小于某个常数。因此,运行时不依赖于您的输入。正如您可能从我所写的内容中推断出来的那样,Big O Notation仅给出了操作的上限。还有其他符号表示下限等等。

依赖于输入的情况的示例可以是:

int res = 0;
int[] arr = getSomeArray();
foreach (int i in arr)
    res = res + i;

这里的运行时间取决于数组的大小,如果我们给出数组的长度变量n,那么这将是O(n)。同样,Big O Notation没有详细说明执行需要多长时间,但在这种情况下,只是说我们可以将n乘以某个常量,然后它将在n*some s内完成

此处给出了更详细的解释:What is a plain English explanation of "Big O" notation?