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,在修改後的執行函式中,... 通常我們衡量乙個演算法的複雜度時,會有兩種演算法效率分析方式 第一種是時間效率,第二種是空間效率。時間效率被稱為時間複雜度,而空間效率被稱作空間複雜度。時間複雜度主要衡量的是乙個演算法的執行速度,空間複雜度主要衡量一乙個演算法所需要的額外空間,在計算機發展的早期,計算機的儲存容量很小。所以對空間複雜...資料結構和演算法(時間複雜度和空間複雜度)
資料結構時間複雜度和空間複雜度
資料結構 時間複雜度和空間複雜度