算法复杂度

算法复杂度

算法复杂度指运行该算法所需要消耗的资源,包括时间资源和空间资源。

评估一个算法的性能主要依据其时间复杂度和空间复杂度来确定。
时间复杂度是指该算法运行的时间长短。
空间复杂度是指该算法运行占用的内存大小。
复杂度越低越好,越短小越好。时间比空间更重要。

时间复杂度

算法运行的时间。
时间复杂度通常用大写O表示,是一个估算出的复杂度量级。

常见算法时间复杂度图表:
算法复杂度_第1张图片
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_...
算法复杂度_第2张图片

算法复杂度速查表:
https://www.cnblogs.com/marti...

算法复杂度实际体验:
O(1): 最棒
O(log₂n): 很好
O(n): 可以
O(nlog₂n): 有点慢
O(n²): 很慢
O(n³): 慢的可怕
O(n!): 如坠地狱

你可能感兴趣的:(算法复杂度时间复杂度)