分析函数

时间:2017-06-15 16:03:09

标签: algorithm complexity-theory discrete-mathematics big-theta

Click here to check question image

您好,我收到了这个问题,但错误的答案是关于分析函数的运行时。

从我的角度来看,外部while循环运行n ^ 2次。具体来说,它从1到n ^ 2开始,因此,运行时是" n ^ 2 - 1",为简单起见,我们将其称为O(n ^ 2)。

内部for循环运行logn(base 2)次,因为除以2。

由于它是嵌套循环,我们必须将这两个运行时间相乘。

所以整个运行时变成了O(n ^ 2 * logn),然而,根据答案,我的答案是错误的。

你能解释为什么答案不是O(n ^ 2 * logn)而是O(n ^ 2)?

1 个答案:

答案 0 :(得分:2)

永远不会执行内部循环,因为n²<1为false,因此while循环执行(n²-1)/2次。