如何找到下面提到的 Big-O 复杂性
你们能帮助理解以下代码的时间复杂度吗 ?
int count = 0;
for (int i = N; i > 0; i /= 2) {
for (int j = 0; j < i; j++) {
count += 1;
}
}
我低估了这应该是O(nlogn),但这是错误的。只是为了更新为什么我认为它会是O(nlogn),因为在第一个循环中,我们将i除以2,这意味着我们将它切成两半,所以这将是log n,在内部循环中,我们一直运行它直到i,所以它将是N,所以复杂性将是O(nlogn)提前感谢