作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
它来自 Rod Stephens 的 Essentials Algorithms。
假设我们有 2 种算法在 1500N 和 30N*N 中解决相同的任务,我们更愿意在什么时候使用哪种算法?
答案是,如果 N 小于或等于 50,我们更愿意使用 1500N 算法,而当 N 大于 50 时,我们更愿意使用 30N*N 算法。
那么,问题是我们为什么要这样使用它们?假设 N 为 2,那么 1500N 将比 30N*N 慢,因为 3000 大于 120,因此当 N 低于 50 时第二种算法更快。我在这里遗漏了什么?不是说书上的答案是错的吗?
最佳答案
确实,答案似乎交换了备选方案。当 n 低于 50 时,O(n*n) 算法会更快。如果值大于 50,或者您无法预测 n 的值。一般的观察是,随着 n 的增加,大 oh 指数的值越低越好。
Errata page for the book已经注意到这个错误(附录 B,第 488 页)。
关于algorithm - _Essential Algorithms_ O(n) 答案没有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55994163/
它来自 Rod Stephens 的 Essentials Algorithms。 假设我们有 2 种算法在 1500N 和 30N*N 中解决相同的任务,我们更愿意在什么时候使用哪种算法? 答案是,
我是一名优秀的程序员,十分优秀!