【发布时间】:2018-05-27 21:15:48
【问题描述】:
在尝试正确理解 Big-O 时,我想知道 O(n log n) 算法是否总是优于 all O(n^2) 算法。
在某些特殊情况下O(n^2) 会更好吗?
我多次阅读过,例如在排序中,像冒泡排序这样的O(n^2) 算法在数据几乎排序时会特别快,那么它会比O(n log n) 算法(比如合并排序)更快吗,在这种情况下?
【问题讨论】:
-
尝试使用朴素的“schoolchild”方法(O(n^2))编写 n 位数乘法的代码,然后尝试使用 Schönhage–Strassen 算法来实现它(仅比 O 稍差一点) (n log n))。你会发现朴素的方法在实现难度上有一些优势:)
标签: algorithm time-complexity big-o