分析函数的运行时间
Analyzing runtime of function
你好,我收到了这个问题,但是关于分析函数运行时的回答错了。
在我看来,外部 while 循环运行了 n^2 次。具体来说,它从 1 开始到 n^2,因此,运行时间是 "n^2 - 1",为了简单起见,我们称它为 O(n^2)。
内部 for 循环运行 logn(基数 2)次,因为除以 2。
由于它是嵌套循环,我们必须将这 2 个运行时间相乘。
所以整个运行时间变成了O(n^2 * logn),然而,根据答案,我的答案是错误的。
你能解释一下答案不是 O(n^2 * logn) 而是 O(n^2) 的原因吗?
内部循环永远不会执行,因为 n²<1
为假,因此 while
循环执行 (n²-1)/2
次。
你好,我收到了这个问题,但是关于分析函数运行时的回答错了。
在我看来,外部 while 循环运行了 n^2 次。具体来说,它从 1 开始到 n^2,因此,运行时间是 "n^2 - 1",为了简单起见,我们称它为 O(n^2)。
内部 for 循环运行 logn(基数 2)次,因为除以 2。
由于它是嵌套循环,我们必须将这 2 个运行时间相乘。
所以整个运行时间变成了O(n^2 * logn),然而,根据答案,我的答案是错误的。
你能解释一下答案不是 O(n^2 * logn) 而是 O(n^2) 的原因吗?
内部循环永远不会执行,因为 n²<1
为假,因此 while
循环执行 (n²-1)/2
次。