- 时间复杂度:执行当前程序消耗的度量
- 空间复杂度:当前程序运行占用内存的度量
以上两个维度去衡量一个算法的耗时与占用内存,用big O 来表示
时间复杂度
常数阶复杂度 O(1)
执行的程序中不存在循环,比如
a = 1
b = 2
print(a+b)
在一段代码中执行的次数是常数,其时间复杂度就是O(1)
线性阶复杂度O(n)
在执行的程度中存在单层循环,时间复杂度为循环的次数n,比如
for i in range(0, n):
print(i)
对数阶O(logN)
i = 1
while(i<n):
i = i * 2
每一次执行循环体,i的值就乘以2,循环x次之后,i 大于 n退出循环体,结束运行,也就是说 2 的 x 次方等于 n,那么 x = log2^n,则时间复杂度为O(logN)
线性对数阶O(nlogN)
O(nlogN) = O(N)x O(logN),在上述的循环体中增加时间负责度为O(N)的循环,如
for i in range(0,n):
while(i<n):
i = i * 2

本文介绍了时间复杂度和空间复杂度的概念,作为衡量算法效率的重要指标。时间复杂度包括常数阶O(1),线性阶O(n),对数阶O(logN),线性对数阶O(nlogN)和平方阶O(n²)等,并通过实例解释了不同阶复杂度的含义。同时,文章也简要讨论了空间复杂度,指出其通常与数组长度和递归深度相关。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



