<分区>
开始研究复杂性,我正在努力解决这个问题:
void what(int n) {
int i;
for (i = 1; i <= n; i++) {
int x = n;
while (x > 0)
x -= i;
}
}
好吧,第一个 for 循环显然是 O(n)
。第一次迭代是 O(n)
,第二次是 O(n/2)
.. 这样 log(n)
次我猜测?
这意味着 O(n) * O(log(n)) = O(n * log(n)) 复杂度
。我做对了吗?
编辑:(不是重复的)我知道 Big O 是什么。我问过具体案例的正确评价。