本文是學習資料結構的筆記。
【效果圖】
#演算法時間複雜度示例
deffunc_01(n):
'''時間複雜度o(log(log(n)))
'''import
math
i =n
count =0
while i > 1:
i = round(math.sqrt(i)) #
注意:sqrt(i)!
count += 1
return
count
print('
時間複雜度o(log(log(n))),n=2000000000000000000,迴圈{}次
'.format(func_01(2000000000000000000)))
deffunc_02(n):
'''時間複雜度o(log(n))
'''i =n
count =0
while i >= 1:
i = i // 2 #
注意:// 2!
count += 1
return
count
print('
時間複雜度o(log(n)),n=100000000,迴圈{}次
'.format(func_02(100000000)))
deffunc_03(n):
'''時間複雜度o((log(n))^2)
'''i = 1count =0
while i <=n:
j =n
while j >0:
j = j // 2 #
注意:// 2!
count += 1i = i * 2 #
注意:* 2!
return
count
print('
時間複雜度o((log(n))^2),n=100000000,迴圈{}次
'.format(func_03(100000000)))
deffunc_04_01(n):
'''時間複雜度o(sqrt(n))
'''i = s = 1count =0
while s
i = i + 1s = s +i
count += 1
return
count
print('
時間複雜度o(sqrt(n)),n=10000,迴圈{}次
'.format(func_04_01(10000)))
deffunc_04_02(n):
'''時間複雜度o(sqrt(n))
'''i = 1count =0
while i * i
count = count + 1i = i + 1
return
count
print('
時間複雜度o(sqrt(n)),n=10000,迴圈{}次
'.format(func_04_02(10000)))
deffunc_05(n):
'''時間複雜度o(n)
'''count =0
for i in range(1, n):
count += 1
return
count
print('
時間複雜度o(n),n=100,迴圈{}次
'.format(func_05(100)))
deffunc_06_01(n):
'''時間複雜度o(n*log(n))
'''count =0
for i in range(1, n):
j = 1
while j <=n:
j = j * 2 #
注意:* 2!
count += 1
return
count
print('
時間複雜度o(n*log(n)),n=1000,迴圈{}次
'.format(func_06_01(1000)))
deffunc_06_02(n):
'''時間複雜度o(n*log(n))
'''count =0
for i in range(1, n):
j = 1
while j
j = j + i #
注意: + i!
count = count + 1
return
count
print('
時間複雜度o(n*log(n)),n=1000,迴圈{}次
'.format(func_06_02(1000)))
deffunc_06_03(n):
'''時間複雜度o(n*log(n))
'''count =0
for i in range(1, n // 3): #
注意:// 3!
j = 1
while j <=n:
j = j + 4 #
注意:+ 4!
count = count + 1
return
count
print('
時間複雜度o(n*log(n)),n=1000,迴圈{}次
'.format(func_06_03(1000)))
deffunc_07(n):
'''時間複雜度o(n*(log(n))^2)
'''count =0
for i in range(1, n):
j = 1
while j <=n:
k = 1
while k <=n:
count += 1k = k * 2 #
注意:* 2!
j = j * 2 #
注意:* 2!
return
count
print('
時間複雜度o((n*log(n))^2),n=100,迴圈{}次
'.format(func_07(100)))
deffunc_08(n):
'''時間複雜度o(n^2)
'''count =0
for i in
range(n):
for j in
range(n):
count += 1
return
count
print('
時間複雜度o((n^2),n=100,迴圈{}次
'.format(func_08(100)))
deffunc_09(n):
'''時間複雜度o(n^3)
'''count =0
for i in
range(n):
for j in
range(n):
for k in
range(n):
count += 1
return
count
print('
時間複雜度o((n^3),n=50,迴圈{}次
'.format(func_09(50)))
演算法的時間複雜度示例
本文是學習資料結構的筆記。效果圖 演算法時間複雜度示例 deffunc 01 n 時間複雜度o log log n import math i n count 0 while i 1 i round math.sqrt i 注意 sqrt i count 1 return count print 時...
演算法時間複雜度空間複雜度
演算法 是解決某一類問題的通法,即一系列清晰無歧義的計算指令。每個演算法只能解決具有特定特徵的一類問題,但乙個問題可由多個演算法解決。乙個演算法應該有以下五個方面的特性 比較演算法的優劣我們從兩個維度去進行考量 時間 空間 時間複雜度,空間複雜度 找出基本語句 演算法中執行次數最多的那條語句就是基本...
演算法 時間複雜度 空間複雜度
1 if i 1 2 a 1 result 3 4 result n 2 result 1000 1000 3 array.push a array.pop 4 map.set 1,1 map.get 1,1 在計算複雜度的時候,o 1 一般會被忽略。1 for let i 0 i n i 2 wh...