演算法的時間複雜度示例

2022-03-15 20:37:39 字數 3674 閱讀 3343

本文是學習資料結構的筆記。

【效果圖】

#演算法時間複雜度示例

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...