Time complexity 为什么下面的代码具有O(n)的复杂性?

Time complexity 为什么下面的代码具有O(n)的复杂性?,time-complexity,Time Complexity,我当时正在做一些练习题。问题询问以下代码的时间复杂度,答案为O(n)。然而,根据我的理解,外部循环运行log(n)次,内部循环运行O(n),因此它的复杂性应该是O(n*log(n)) int count=0; 对于(int i=N;i>0;i/=2){ 对于(int j=0;j

我当时正在做一些练习题。问题询问以下代码的时间复杂度,答案为O(n)。然而,根据我的理解,外部循环运行log(n)次,内部循环运行O(n),因此它的复杂性应该是O(n*log(n))

int count=0;
对于(int i=N;i>0;i/=2){
对于(int j=0;j

请澄清我在这里遗漏了什么。

内部语句运行N+N/2+N/4+N/8+。。。时代。也就是2*N=O(N)。

内部语句运行N+N/2+N/4+N/8+。。。时代。也就是2*N=O(N)

int count = 0;
for (int i = N; i > 0; i /= 2) {
    for (int j = 0; j < i; j++) {
        count += 1;
    }
}