【发布时间】:2014-09-21 22:56:02
【问题描述】:
来自我的教科书:
O-notation 和算法的复杂性
重要的是不要尝试在算法之间进行比较 使用 O 表示法。
例如,假设算法 A1 和 A2 都解决相同的问题 问题,A1的复杂度为O(n^3),A2的复杂度为O(n^2)。
以上说法完全合理。
请注意,我们不能断定 A2 比 A1 更有效 这种情况!
为什么不呢? A2 的复杂度增长比 A1 慢。
【问题讨论】:
-
在列出的示例中,所有 Big-O 表示法都告诉您,在 某个点,A1 的增长速度快于 A2,因此 A2 是更好的选择。它不会告诉你那一点是什么时候。当您不考虑这一点时,比较就会成为问题。有一些算法的 O 非常大,但隐藏的常数非常高,以至于除了最可笑的大问题之外,这些算法在实践中都不实用。
-
在第一个引用的“comparisons”之前插入“general”或“sweeping”可能会有所帮助句子。
标签: algorithm performance complexity-theory notation