【发布时间】:2020-04-13 20:42:08
【问题描述】:
以下代码的时间复杂度是多少?
int fun1(int n) {
int i = 1;
int count = 0;
while (i < n) {
count++;
i = i * 2;
}
printf("Loop ran %d times\n", count);
return 0;
}
【问题讨论】:
-
它的 log n (base 2)
-
@Eraklon 你能帮我解释一下吗,这会很有帮助
-
i本质上是2^count在迭代的和。如果n将是 1024,那么在 10 次迭代之后,i也将是 1024,因此循环将退出。 log2(1024) = 10.
标签: c data-structures time-complexity