算法的时空复杂度概念
时间复杂度

# 时间复杂度
print("hello world") # T(n) = O(1)
for i in range(n):
print("hello world") # T(n) = O(n)
for i in range(n):
for j in range(n):
print("hello world") # T(n) = O(n**2)
for i in range(n):
for j in range(n):
for k in range(n):
print("hello world") # T(n) = O(n**3)
# T(n) = O(log n)
def foo(n):
while n >1:
print(n)
n = n //2
foo(64)
常见的时间复杂度
O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n2logn) < O(n3)
简单判断时间复杂度的方法
1.有循环减半的过程 O(log n)
2.几次循环就是n的几次方 O(n**n)
空间复杂度
空间复杂度:用来评估算法内存占用大小的一个式子
1.程序只有变量 S(n) = O(1) 2.程序需要一个一维数组 S(n) = O(n) 3.程序有一个二维数组 S(n) = O(n2) 一般情况下,会用空间复杂度,换取时间复杂度

浙公网安备 33010602011771号