如何计算复杂度?

发布于 2024-10-17 03:07:28 字数 112 浏览 4 评论 0原文

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

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

上面例子的复杂度是多少?

谢谢

I am a beginner in algorithms and I don't know how to calculate complexity.

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

What is the complexity in example above?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

如果您参考 O 表示法,那应该是 O(1)。

That should be O(1) if you refer to the O-Notation.

爱的那么颓废 2024-10-24 03:07:28

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

它确实取决于输入的情况的示例可能是:

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

这里运行时间取决于数组有多大,如果我们将数组的长度指定为变量n,那么这将为O(n)。同样,大 O 表示法并没有具体指定执行需要多长时间,但在本例中,只是表示我们可以将 n 乘以某个常量,然后它将在 内完成n*一些 s。

这里给出了更详细的解释:什么是“Big O”符号的简单英语解释?

In the Big O Notation this corresponds to O(1) which basically means that the run-time of the operation is constant or at least is less than a certain constant. Ergo, the run-time does not depend on the input you have. As you may infer from what I wrote, the Big O Notation only gives an upper bound of the operation. There is also other notations which give a lower-bound and so on.

An example of a case where it does depend on the input could be:

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

Here the run-time depends on how big the array is, and if we give the length of the array the variable n then this will be O(n). Again, the Big O Notation does not specify exactly how long it will take to execute but, in this case, just says that we can multiply n by some constant and then it will be finished within n*some s.

A more detailed explanation is given here: What is a plain English explanation of "Big O" notation?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文