执行的次数即时间复杂度。
若循环嵌套,则要把原来时间复杂度相乘。O(n)与O(n)嵌套,则复杂度为O(n2)
时间复杂度即一段代码被执行的次数。比如一段代码被执行了n次,那么这段代码时间复杂度为O(n)
。
for i in range(1, n): # 复杂度O(logn)
i *= 2
i
的取值为20, 21 … 2x。直到2x大于n,结束循环。x约等于执行的次数。2x = n。那么x = logn。执行次数约为logn,故时间复杂度为O(logn)
。
for i in range(1, n): # 复杂度O(n^2^)
for j in range(1, n):
pass
这段代码复杂度为O(n2)。
for i in range(1, n): # 复杂度O(nlogn)
for j in range(1, n):
j *= 2
则这段为O(nlogn)。