确定特定循环的大(O)效率

时间:2015-10-05 00:48:04

标签: java big-o

我被要求确定此循环的大O符号。

<form>

现在我看到这是一个嵌套循环。但这绝对不是N ^ 2,对吗? 我理解是什么使得O(n)或O(log(n)),但我将如何确定一个特定的循环,例如这个?

1 个答案:

答案 0 :(得分:4)

内部循环从 n 运行到 0 ,因此它是 O(n)

外圈

while (x < (n*n)) {
    ...
    x = 2*x;
}

是对数的,从 1 运行到 n * n ,这将是 O(log(n 2 ) ))= O(2 log n)= O(log n)

由于循环是嵌套的,因此您可以将复杂性乘以 O(n log n)

相关问题