java如何找到顺序的算法?
我必须找到这些算法的顺序。计算结果与n无关
for (int pass = 1; pass <= n; pass++){
for (int index = 0; index < n; index++){
for(int count = 1; count < 10; count++){
}
}
}
第二部分是,我要在内环中将10替换为n。我觉得两者都是O(n3),但我对这个答案不太自信。我们将不胜感激
你可以在下面搜索框中键入要查询的问题!
我必须找到这些算法的顺序。计算结果与n无关
for (int pass = 1; pass <= n; pass++){
for (int index = 0; index < n; index++){
for(int count = 1; count < 10; count++){
}
}
}
第二部分是,我要在内环中将10替换为n。我觉得两者都是O(n3),但我对这个答案不太自信。我们将不胜感激
# 1 楼答案
使用Sigma表示法,您可以应用以下内容,您将得到精确的迭代次数:
# 2 楼答案
每个循环运行n次(在将n放入第三个循环之后)。循环嵌套在3个级别上,因此您将在最内部的循环中执行指令n3次
你的答案是正确的:是O(n3)。它实际上是Θ(n3),因为下限和上限都是n3
在不替换第三个循环的情况下,答案是O(n2)(或Θ(n2),因为每个外部迭代的最内部迭代次数是恒定的
# 3 楼答案
一旦在内部循环中将
10
替换为n
,它将是O(n3)
,因为您有三个嵌套循环,它们都依赖于n
现在,它是
O(n2)
,因为十次迭代的内部循环需要一个恒定的时间,与n
无关