我是算法的初学者,我不知道如何计算复杂性。
Example:
int x=10,y;
y = x;
上面例子的复杂性是什么?
由于
答案 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?