数据结构第一课下半节O(log(n))及小结
1.2 O( log(n) )
while n > 1:
print(n)
n = n // 2
'''
上述 2**6 = 64 ==》 log(2)64 = 6
这里时间复杂度记为 O( log(2)n ) 或者 O( log(n) )
注意:
只要代码出现循环减半,就一定出先 log(n)
'''
时间复杂度是用来估计算法运行时间的一个式子(单位)
一般来说,时间复杂度高的算法比复杂度低的算法运行速度慢
常见的时间复杂度(按效率排序)
O(1)
< O( log(n) )
< O( nlog(n) )
< O( n**2 )
< O( n**2log(n) )
< O( n**3 )
不常见的算法时间复杂度
O(n!) O( 2**n ) O( n**n )
第一课小结
如果要对一个列表进行排序,请问它的时间复杂度
1、需要先确定问题的规模 =》 列表的规模
2、算法是否有循环减半的过程 =》 log
3、K层关于n的循环 =》 n**k
其他复杂情况: 根据算法执行过程判断