Big o 大(o)符号logn还是n? for(int i=1;i

Big o 大(o)符号logn还是n? for(int i=1;i,big-o,Big O,内部函数是O(n),因为它在线性时间内运行,而外部函数是O(logn),因为每次迭代i都乘以2。所以为了回答您的问题,是的,内部循环会被认为是O(n),因为j++在线性时间内运行。但是,因为O(n)比O(logn)复杂,那么O(n)优先级更高,总运行时间为O(n)这不是一个编程问题,更适合于计算机科学的堆栈交换。特别是这与一个特定的编程语言无关。尤其是C,C++,WHONT。对不起,编程的时间复杂性与编程有关。假设N是2的幂。循环迭代。N+N/2+N/4+…+4+2+1倍。这个数字是2N-1(假

内部函数是O(n),因为它在线性时间内运行,而外部函数是O(logn),因为每次迭代i都乘以2。所以为了回答您的问题,是的,内部循环会被认为是O(n),因为j++在线性时间内运行。但是,因为O(n)比O(logn)复杂,那么O(n)优先级更高,总运行时间为O(n)

这不是一个编程问题,更适合于计算机科学的堆栈交换。特别是这与一个特定的编程语言无关。尤其是C,C++,WHONT。对不起,编程的时间复杂性与编程有关。假设N是2的幂。循环迭代。N+N/2+N/4+…+4+2+1倍。这个数字是2N-1(假设这些都是数字0b111…1111中的位),所以循环是O(N)。我认为是大的(O)你是对的,如果我正确理解了你的问题,你是问内环是否考虑了O(n)?如果是,那么它就是O(n)。外表达式是O(logn)。但是因为O(n)高于O(logn)外循环取决于O(n)的内循环,那么O(n)的优先级更高,运行时间将是O(n)。我将编辑我的答案,因为我不想让你像其他人一样悬而未决。谢谢答案,我向上投票给你,但我已经被否决太多次了lol
for(int i = 1; i < N; i = 2*i){

    for(j=0; j<i; j++){

    }
}