我总是在评估问题的复杂性时遇到问题。我经常尝试找到O(n)解,但有时O(nlogn)甚至O(n ^ 2)是最好的解决方案。
我知道的一个“经验法则”是,如果你有一个排序数组,你需要找到一些东西,它可能在O(logn)中完成。我也知道排序不能比O(nlogn)更快。没有经验的程序员可以遵循任何类似的规则吗?重复出现的问题你知道吗?
对我来说最麻烦的是O(n ^ 2),特别是如果我在考试中面临压力,我会浪费时间去寻找更好的考试。
我希望这不是一个过于宽泛和基于意见的问题。
谢谢!
答案 0 :(得分:1)
基于非比较的排序需要O(n)时间。例如:基数排序。
这似乎是一个很好的阅读。 http://bigocheatsheet.com/它包含常见算法列表,它们的空间和时间复杂度。希望这会有所帮助。