算法复杂度
算法复杂度指运行该算法所须要耗费的资源,包含工夫资源和空间资源。
评估一个算法的性能次要根据其工夫复杂度和空间复杂度来确定。
工夫复杂度是指该算法运行的工夫长短。
空间复杂度是指该算法运行占用的内存大小。
复杂度越低越好,越短小越好。工夫比空间更重要。
工夫复杂度
算法运行的工夫。
工夫复杂度通常用大写 O 示意,是一个估算出的复杂度量级。
常见算法工夫复杂度图表:
O(1) < O(log₂n) < O(n) < O(nlog₂n) < O(n²) < O(n³) < \(O(2^n) \) < O(n!)
O(1): 最快,常数工夫,固定步骤内执行结束,与输出数据 n 无关。尽量往这个量级优化。
O(log₂n): 对数工夫。是以 2 为底 n 的对数。(多少个 2 相乘才等于 n)。
log₂2 = 1、log₂4 = 2、log₂8 = 3、log₂16 = 4、log₂32 = 5 以此类推。
O(n): 线性工夫,与 n 成正比的关系。
O(nlog₂n): 线性对数工夫,比 O(n) 慢。
O(n²): 指数工夫,算法的执行工夫是 n 的平方。
O(n!): 阶乘,比指数工夫更慢。
排序算法工夫复杂度图表:
https://blog.csdn.net/weixin_…
算法复杂度速查表:
https://www.cnblogs.com/marti…
算法复杂度理论体验:
O(1):最棒
O(log₂n):很好
O(n):能够
O(nlog₂n):有点慢
O(n²):很慢
O(n³):慢的可怕
O(n!):如坠天堂