【发布时间】:2020-12-06 17:59:57
【问题描述】:
这段小代码的时间复杂度是多少?
int count = 0;
for (int i = n; i > 0; i = i/2) {
for (int j = 0; j < i; j++) {
count++;
}
}
我想知道这段代码的时间复杂度。对我来说,我计算为 O(n log n),因为外循环运行 logn 次,内循环运行 O(n) 次。但我很困惑,因为内循环 j 取决于 i。 那么实际的时间复杂度是多少?为什么?
【问题讨论】:
-
你的意思是 for (int i = n; i > 0; i /= 2)
-
代码没有什么“令人困惑”的地方
-
@paulsm4 您是否希望该评论对 OP 有所帮助?
-
@paulsm4 我更正了标题
标签: c algorithm complexity-theory