时间复杂度排序:O(1) < O(logN) < O(N) < O(NlogN) < O(N2) < O(NP) < O(2N) < O(PN)
下面来举例各场景:
O(2N) 场景:斐波那契数列递归
def function(n):
if n<1:return 0
if n==1 or n==2:return 1
return function(n-1)+function(n-2)
O(N2) 场景:2个for循环
for i in range(n):
for j in range(n):
O(LogN)
场景一:for循环中i用乘法递进
for(i=2;i<=n;i=i*2):
场景二:while里i用除法递进
while(i>0):
i/=2
O(NLogN) 场景:for循环中i用乘法递进,在包一层for
for i in range(n):
for(i=2;i<=n;i=i*2):