条件为math.pow的循环的Big-O

时间:2018-10-09 00:28:19

标签: java time-complexity big-o

对于以下代码:

for(int i = 0; i < Math.pow(n, 3); i++){
    ...some code here...
}

循环主体是否执行N次?因为随着N的增加,Math.pow被调用的次数。还是我错误地考虑了Big-O,因为它可能也已登录,因为math.pow使循环的运行类似于二进制搜索?

3 个答案:

答案 0 :(得分:1)

循环从0迭代到 n 3 -1。如果循环中的代码在恒定时间内执行,并且未修改 i n ,则总体运行时间为 O n 3 )。

答案 1 :(得分:1)

根据您的要求。就循环而言,它将操作n ^ 3次,因此得到O(n ^ 3)。如果只问Math.pow函数,则Math.pow(x,y)的复杂度为O(log y),因此在这种情况下为O(1)。

答案 2 :(得分:1)

n的值在循环中不变,因此循环仅执行n ^ 3次。 因此复杂度为O(n ^ 3)。