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

标签 algorithm time-complexity space-complexity

<分区>

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

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

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

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

谢谢!

最佳答案

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

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

关于algorithm - 是否有评估算法的最佳时间/内存复杂度的经验法则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22119147/

相关文章:

java - 二叉树的 hasPathSum() 实现

java - 打印前n个素数的复杂度

algorithm - 微软面试 : transforming a matrix

c# - Dictionary 的时间和空间复杂度是多少?

algorithm - 将一组大整数转换为一组小整数

algorithm - 确定用于解压缩流式压缩数据的最佳初始缓冲区大小

algorithm - 将堆栈实现为数组的成本分析?

Python 复杂性引用?

java - 该算法查找 Anagrams 的时间复杂度和空间复杂度是多少?

algorithm - 唯一随机生成 ID 的好算法