由循环中N的乘法组成的算法的big-o表示法是什么。
void testing(int n) {
for(int i =0; i<n;i++) {
n=n*2;
System.out.println("hi"+n);
}
}
答案 0 :(得分:2)
我将尽可能严格地回答我。
编辑:忘了说,我们假设比较,赋值和乘法之类的每个运算的复杂度为 O(1)
简而言之,该算法在大多数情况下不会终止,因此没有为其定义复杂性。 复杂度是算法成本 C 的某种上限,指出 O(n)意味着 C <= kxn,k> 0 强>。非终止算法的代价是无限的,并且 inf> inf 是不确定的。然后,让我们看看您的算法为何不终止:
每次迭代,如果 i
答案 1 :(得分:1)
我尝试在IDE中运行您的代码,但发现这是一个无限循环。 算法复杂度仅针对必须终止的算法(最常被接受的定义)进行定义。当程序不终止时,它不是算法。因此它没有“算法时间复杂度”。