作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在计算机科学中,计算机科学家知道如何计算算法的运行时间以优化代码非常重要。对于你们计算机科学家,我提出一个问题。
我知道,就 n 而言,双嵌套 for 循环的运行时间通常为 n2,而三重嵌套的 for 循环的运行时间通常为 n3。
但是,对于代码看起来像这样的情况,运行时间会是n4吗?
x = 0;
for(a = 0; a < n; a++)
for(b = 0; b < 2a; b++)
for (c=0; c < b*b; c++)
x++;
最佳答案
你是对的,n*2n*4n2 = O(n4)。
三重嵌套循环仅意味着将有三个数字相乘以确定最终的大 O - 每个被乘数本身取决于每个循环执行的“处理”量。
在您的情况下,第一个循环执行 O(n) 操作,第二个循环执行 O(2n) = O(n) 并且内部循环执行 O(n2) 操作,因此总体 O(n*n*n2) = O(n4 )。
关于runtime - 大 Oh 符号和计算三嵌套 For 循环的运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4801499/
我是一名优秀的程序员,十分优秀!