【发布时间】:2012-01-05 21:47:52
【问题描述】:
只需要快速确认某事。
如果一个算法需要n(n-1)/2 测试来运行,那么O(n^2) 是不是很大?
【问题讨论】:
只需要快速确认某事。
如果一个算法需要n(n-1)/2 测试来运行,那么O(n^2) 是不是很大?
【问题讨论】:
是的,没错。
n(n-1)/2 扩展为 n^2/2 - n/2:
线性项n/2 下降,因为它的阶数较低。这留下了n^2/2。常量被大O 吸收,留下n^2。
【讨论】:
是的:
n(n-1)/2 = (n2-n)/2 = O(n^2)
【讨论】:
是的,是的。 n(n-1)/2 是 (n^2 - n)/2,如果您选择至少为 1 的 c,则对于所有 n>=1,它显然小于 c*n^2。
【讨论】:
n(n-1)/2 展开为(n^2 -n) / 2,即(n^2/2) - (n/2)
(n^2/2)和(n/2)是两个函数组件,其中n^2/2占主导地位。
因此,我们可以忽略- (n/2) 部分。
从n^2/2,您可以安全地删除渐近符号分析中的 /2 部分。
这简化为
n^2
所以是的,它在 O(n^2) 中
【讨论】: