时间复杂度
一、时间复杂度的定义
时间复杂度在算法运行时间上来衡量一个算法的好坏,时间复杂度越低代表算法的性能越好,当然算法的性能不止由时间复杂度决定,还有空间复杂度,大多时候关注时间复杂度
二、常见时间复杂度及其大小比较
时间复杂度分为一般情况,最好情况和最坏情况,通常用O表示,默认是一般情况下的时间复杂度,对于O我的理解是把它类似高数里面的无穷大,计算时省去常数项和系数,常见的有
O
(
1
)
,
O
(
l
o
g
n
)
,
O
(
n
)
,
O(1), O(logn),O(n),
O(1),O(logn),O(n),
O
(
n
l
o
g
n
)
,
O
(
n
2
)
O(nlogn),O(n^2)
O(nlogn),O(n2),其时间复杂度依次增加,如下图所示
三、常见时间复杂度用python举例
O ( 1 ) O(1) O(1)
x = 1
y = x
O ( l o g n ) O(logn) O(logn)
while i < n: # 一次循环
i = i ** 2
O ( n ) O(n) O(n)
for i in range(n): # 一次循环
i = i + 1
O ( n l o g n ) O(nlogn) O(nlogn)
while i < n: #两次循环
i = i + 1
while j < n:
j = j ** 2
O ( n 2 ) O(n^2) O(n2)
while i < n: #两次循环
i = i + 1
while j < n:
j = j + 1