【发布时间】:2016-11-11 13:01:07
【问题描述】:
我正在阅读有关使用递归关系确定嵌套循环复杂性的一段文本。在这个特定的示例中,我试图确定计数变量将作为 n 的函数递增多少次。
这是我正在分析的循环:
for (int i = 1; i <= n; i++) {
int j = n;
while (j > 0) {
count++;
j = j / 2;
}
}
我想我理解第一行将简单地等同于 n,因为它只针对 n 的每个值执行,但它的其余部分是我遇到的麻烦。我认为答案类似于 n(n/2) ,只是这个例子使用的是整数除法,所以我不确定如何用数学表示。
我已经在纸上手动运行了几次循环,所以我知道对于 1-6 的 n 值,计数变量应该等于 1、4、6、12、15 和 18。我似乎无法想出公式...任何帮助将不胜感激!
【问题讨论】:
标签: java algorithm complexity-theory nested-loops