資料結構和演算法(時間 空間複雜度)

2021-10-03 03:16:24 字數 1299 閱讀 3455

int sum =

0, n=

100;

printf

(「i 1ove fishc.com\n」)

;printf

(「i 1ove fishc.com\n」)

;printf

(「i 1ove fishc.com\n」)

; sum=(1

+n)*n/2;

//o(1)

線性階

int i, n=

100, sum=0;

for( i=

0; i< n; i++

)//它的迴圈的肘間複雜度為o(n),因為迴圈體中的**需要執行n次

平方階

int

1,j, n=

100;

for( i=

0; i< n, i++)}

//o(n^2)

對數階

int1=

1, n=

100;

while

( i// 於是由2^x=n得到x=1og(2)n,所以這個迴圈的時間複雜度為o(1ogn)

函式呼叫的時間複雜度分析

void

function

(int count)

}int i,j;

for(i=

0; i< n; i++

)//function函式的肘間複雜度是o(n),所以整體的時間複雜度就是o(n^2)

**常見的時間複雜度**
例子

時間複雜度

裝逼術語

5281314

o(1)

常數階3n+4

o(n)

–3n^2+4n+5

o(n^2)

–3log(2)n+4

o(logn)

對數階2n+3nlog(2)n+14

o(nlogn)

nlogn階

n^3 +2n^2+4n+6

o(n^3)

立方階2^n

o(2^n)

指數階常用的時間複雜度所耗費的時間從小到大依次是 :

o(1)

資料結構和演算法(時間複雜度和空間複雜度)

測試演算法效率 即運算時間 事後統計方法 主要通過設計好的測試程式和資料,利用計算機計時器對不同演算法編制的程式的執行時間進行比較,從而確定演算法效率的高低 事前分析估算方法 比上個方法更優 在計算機編寫程式前,依據統計方法對演算法進行估算 乙個高階語言在計算機上執行時所消耗的時間取決於下列因素 1...

資料結構時間複雜度和空間複雜度

1 演算法o n 關注n的階數,當數十分大的時候,常數可以忽略。o n 又稱為大o記法。2 t n o f n 隨著n變化而變化,f n 是某個函式,執行的次數等於時間,一般情況下,t n 增長最慢的演算法最優。4 推到o n 1,用1取代時間中所有加法常數 哪些可以忽略 2,在修改後的執行函式中,...

資料結構 時間複雜度和空間複雜度

通常我們衡量乙個演算法的複雜度時,會有兩種演算法效率分析方式 第一種是時間效率,第二種是空間效率。時間效率被稱為時間複雜度,而空間效率被稱作空間複雜度。時間複雜度主要衡量的是乙個演算法的執行速度,空間複雜度主要衡量一乙個演算法所需要的額外空間,在計算機發展的早期,計算機的儲存容量很小。所以對空間複雜...