algorithm - 对同一个输入数组运行两次循环的复杂性是多少?

标签 algorithm time-complexity asymptotic-complexity

我是算法的新手,对学习和实现它们非常感兴趣。
通过我能找到的所有可用的在线 Material 来学习它们。 我对此有点困惑 -

考虑这段代码-

for (int i=0; i<n; i++) { ..... }
for (int i=0; i<n; i++) { ..... }

这个的复杂度是多少?
O(n) 或 O(n^2)?

最佳答案

假设 { 。 . . 是常数时间,那么一次循环的复杂度是O(n)。

两个“相邻”循环的复杂度是多少?它是 O(n) + O(n)。或者您可以将其视为 O(n + n) --> O(2n)。常量从复杂性中剔除,所以这是 O(n)。

嵌套循环是完全不同的事情。所以如下:

for (int i=0; i<n; i++) { ..... }
    for (int j=0; j<n; j++) { ..... }

将是 O(n^2)。

关于algorithm - 对同一个输入数组运行两次循环的复杂性是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37765752/

相关文章:

c - 二分查找...这段代码有问题吗

Php - 按相似词分组

java - 在 Java Program Lab 中需要快速帮助

javascript - 搜索数百万条记录的最快方法是两个 js 对象的组合

algorithm - NP 到 P 转换

java - 使用集合与优先级队列实现的二叉堆的渐近复杂性

python - 后缀搜索 - Python

c++ - c++数学库pow()函数的时间复杂度?

algorithm - 为什么runtime要构造一个决策树mnlog(n)?

具有正弦复杂性的算法