繁体   English   中英

找到复杂性的上限和下限

[英]Finding lower and upper bound to complexity

我想找到此算法复杂度的下限和上限

1: for all i=1 to n*n do
2:   for all j=i to 2*i do
3:     output “hello world”
4:   end for
5: end for

通过将其记为总和并将其简化为

f(n) = 0.5*n^4 + 1.5*n^2

似乎复杂度的上限是O(n ^ 4),因为0.5 * n ^ 4是最重要的元素。

为了降低复杂度,我使用了公式

f(n) = Ω(g(n)) if f(n) >= c * g(n), where c > 0

似乎0 <c <1的下界是Ω(n ^ 3)

我的推理对这两种情况都是正确的吗? 有找到Omega的简便方法吗? 感谢您的时间 :)

我很确定您的代码的复杂性是静态的,因此上下限是相等的。

编辑:我从排序算法知道复杂度符号。 迭代次数取决于排序的方式以及列表的初始顺序。 在已经排序的列表上,排序算法通常是最快的。 因此, 最好的情况是对所有内容进行排序,而最坏的情况 (某种混乱)则取决于算法。 有些算法会遇到简单的反向列表,而其他算法则不会。 这就是为什么没有完美的排序算法的原因。 您可能会选择最适合自己的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM