0

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

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

对我来说最麻烦的是 O(n^2),尤其是当我面临考试压力并且我浪费时间去寻找更好的考试时。

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

谢谢!

4

1 回答 1

1

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

这似乎是一本好书。http://bigocheatsheet.com/它包含常用算法列表,它们的空间和时间复杂度。希望这可以帮助。

于 2014-03-01T20:19:21.420 回答