簡單總結 複雜度分析

2021-10-03 19:30:57 字數 1030 閱讀 2160

執行次數為線性的, t(n)

def

eatbread

(n):

for i in n:

print

("eat bread"

,i)

執行次數為對數,t(n)=logn

每一次都是減去一半

def

eatbread

(n):

i =1while i<=n:

i = i *

2print

("eat bread"

)

執行次數為常數,t(n)=1.

def eatbread(n):

print(「eat bread」)

執行次數為多項式,t(n)=0.5*n^2+0.5n

一條長10寸的麵包,吃掉第乙個一寸需要1天時間,吃掉第二個一寸需要2天時間…吃完要多少天

1加到10,[(n+1)*n]/2

def

eat(n)

:while iwhile jprint

("等待一天"

) j+=

1print

("eat bread"

) i+=

1

概念:若存在函式 f(n),使得當n趨近於無窮大時,t(n)/ f(n)的極限值為不等於零的常數,則稱 f(n)是t(n)的同數量級函式。記作 t(n)= o(f(n)),稱o(f(n)) 為演算法的漸進時間複雜度,簡稱時間複雜度。

一段迴圈中,如果裡面帶有判斷條件,有可能第乙個條件就跳出迴圈,那麼o(1),有可能最後才跳出迴圈,那麼o(n);第一種情況就是最好情況時間複雜度,第二種是最壞情況時間複雜度

空間複雜度的描述?

空間複雜度是指除了原本的資料儲存空間外,演算法執行還需要額外的儲存空間。例如棧需要儲存大小為n的陣列,這些是無法省掉的,在入棧和出棧過程中,只需要一兩個臨時變數儲存空間,所以空間複雜度是 o(1)

複雜度分析總結

複雜度的總結概要 最近複習演算法,先總結一下最基本的時間複雜度概念和判斷方法。常用七種 不考慮常數係數。判斷 根據n的情況執行的次數 o 1 var n 1000 console.log 輸出一次 n console.log 輸出二次 n console.log 輸出三次 n 不關心常數係數,無論輸...

複雜度分析 時間複雜度分析和空間複雜度分析

其實,只要講到資料結構與演算法,就一定離不開時間 空間複雜度分析。而且我個人認為,複雜度分析是整個演算法學習的精髓,只要掌握了它,資料結構和演算法的內容基本上就掌握了一半。1.時間複雜度分析 對於剛才羅列的複雜度量級,我們可以粗略地分為兩類,多項式量級和非多項式量級。其中,非多項式量級只有兩個 o ...

複雜度分析 時間複雜度 空間複雜度

執行效率是演算法的乙個重要的考量指標,演算法的執行效率用時間 空間複雜度來衡量。今天我們來學習一下複雜度的分析。通常我們可以通過執行程式來獲得演算法的真正的執行時間,這種方法我們可以稱為事後統計法,但這種方法得到的是具體的資料,測試結果很依賴測試環境,而且受資料規模影像最大。因此,我們需要乙個不需要...