评估算法的最佳时间/内存复杂度是否有经验法则?

时间:2014-03-01 19:22:09

标签: algorithm time-complexity space-complexity

我总是在评估问题的复杂性时遇到问题。我经常尝试找到O(n)解,但有时O(nlogn)甚至O(n ^ 2)是最好的解决方案。

我知道的一个“经验法则”是,如果你有一个排序数组,你需要找到一些东西,它可能在O(logn)中完成。我也知道排序不能比O(nlogn)更快。没有经验的程序员可以遵循任何类似的规则吗?重复出现的问题你知道吗?

对我来说最麻烦的是O(n ^ 2),特别是如果我在考试中面临压力,我会浪费时间去寻找更好的考试。

我希望这不是一个过于宽泛和基于意见的问题。

谢谢!

1 个答案:

答案 0 :(得分:1)

基于非比较的排序需要O(n)时间。例如:基数排序。

这似乎是一个很好的阅读。 http://bigocheatsheet.com/它包含常见算法列表,它们的空间和时间复杂度。希望这会有所帮助。