Big o 大混乱

Big o 大混乱,big-o,Big O,我很难理解如何计算算法的严格上界和下界。为什么这个的大oh等于log(n)?请详细解释 int count = 0 for (int a = 1; a < N; a = a * 2) for (int b = 1; b < N; b = b * 2) count++ end for end for int count=0 对于(int a=1;a:-)

我很难理解如何计算算法的严格上界和下界。为什么这个的大oh等于log(n)?请详细解释

int count = 0
for (int a = 1; a < N; a = a * 2)
    for (int b = 1; b < N; b = b * 2)
        count++
    end for
end for
int count=0
对于(int a=1;a
这两个循环彼此独立,因此我们只需将复杂度相乘即可获得总体复杂度。每个循环都是
O(lgN)
,因为在循环的每个步骤中计数器都减半。因此,总体运行时间为
O(lgN*lgN)=O(lgN^2)

这两个循环彼此独立,因此我们只需将复杂度相乘即可获得总体复杂度。每个循环都是
O(lgN)
,因为在循环的每个步骤中计数器都减半。因此,总的运行时间是
O(lgN*lgN)=O(lgN^2)

希望我把你的大O变成了一个微笑:
:-O-->:-)
希望我把你的大O变成了一个微笑:
:-O-->:-)