資料結構 演算法基礎 複雜度分析

2021-10-03 10:32:46 字數 1702 閱讀 9557

**演示

def

func()

: a =

1 b =

2 c =

3if __name__ ==

'__main__'

: func(

)# 時間複雜度? -> 執行次數

上述**他的複雜度:

假設每次執行都花了 unit_t 時間,上述**(func) 執行了3次,花費 3 * unit_t 的時間。

**演示2

# **演示2

deffunc2

(n):

sum=

0# unit_t

for i in

range

(n):

# n * unit_t

sum+= i # n * unit_t

return

sum

分析:

上述**執行的次數:2*n +1;

**演示3

# **演示3

deffunc3

(n):

for i in

range

(n):

# n 次

for j in

range

(n):

# n*n 次

print

(i * j)

# n*n 次

分析:

執行次數: n^2次

對於有限次數,例如**示例1——執行次數有限,o(1)

線性相關的,比如例項2——o(n),比如例項3——o(n^2)

複雜度只取最高次冪;

**演示4

# **演示4

deffunc1

(n):

# o(n)

sum=

0for i in

range

(n):

sum+= i

return

sumdef

func2

(m):

# o(n^2)

sum=

0for i in

range

(m):

for j in

range

(m):

sum+= i * j

return

sumdef

fun3

(o):

# o(n) + o(n^2)

return func1(o)

+ func2(o)

分析: func3的時間複雜度?

t(n) = o(n)+o(n^2)

o(n^2)

**示例5

# 示例5

deffunc5

(n):

i =1while i < n:

i *=

3

假如,n = 27;

第一次: i = 3

第二次: i = 9

第三次: i = 27

log 3 27 = 3

資料結構 演算法基礎 複雜度分析2

最好 最壞 平均 均攤時間複雜度 最好 最壞時間複雜度 示例1 示例1 deffind x,list for item in list if item x pos list index x return pos上述 時間複雜度 等於len list n o n 改寫 deffind2 x,list ...

1 1資料結構 演算法複雜度分析

1 演算法時間複雜度分析 1 原操作 定義語句 賦值語句 輸入輸出語句 即非迴圈 順序 分支等控制結構 2 頻度 tn 原操作執行的次數 4 演算法時間複雜度o n 頻度的數量級 5 問題規模n 把任何要解決的問題的輸入都轉化成乙個陣列,那麼陣列長度就是問題規模。6 o 1 即常數階,乙個演算法中沒...

資料結構與演算法 複雜度分析

一 什麼是複雜度分析?1.資料結構和演算法解決是 如何讓計算機更快時間 更省空間的解決問題 2.因此需從執行時間和占用空間兩個維度來評估資料結構和演算法的效能。3.分別用時間複雜度和空間複雜度兩個概念來描述效能問題,二者統稱為複雜度。4.複雜度描述的是演算法執行時間 或占用空間 與資料規模的增長關係...