我有作业问题:
- 求语句 x = x + 1 执行次数的 theta 表示法。(10分)。
i = n
while (i >= 1)
{
for j = 1 to n
{
x = x + 1
}
i = i/2
}
这就是我所做的:
好的,首先让我们让它更容易。我们将首先找到增长的顺序:
while (i >= 1)
{
x = x + 1
i = i/2
}
具有增长顺序的O(log(n))
实际上对数基数 2
另一个内部 for 循环将执行 n 次,因此算法应该是有序的:
O(log(n)*n)
我感到困惑的部分是我应该找到 theta 符号而不是 big-O。我知道 theta 表示法假设将函数限制在上限和下限。正确答案会是Theta(log(n)*n)
?
我在这个链接中找到了答案,但我不知道你是如何得到这个答案的。为什么他们声称答案是 Theta(n) ?