在了解時間複雜度和空間複雜度之前要先搞清楚演算法效率,演算法效率分為兩種乙個是時間效率也稱時間複雜度,另乙個是空間效率也稱空間複雜度。
很顯然,時間複雜度衡量乙個演算法用時多少即它的執行速度,空間複雜度衡量的是演算法需要的空間,這兩種複雜度都採用大o的漸進表示法來表示。隨著計算機的發展,計算機的儲存容量已經達到了很高的乙個程度,現在基本上考慮的都是乙個演算法的時間複雜度,空間複雜度已經不再是乙個需要特別關注的問題了。
我做的乙個本節總結的思維導圖↓
時間複雜度
計算時間複雜度主要是計算演算法中基本操作的執行次數,採用大o的漸進表示法,以下面的這段**為例子來計算它的時間複雜度
void func1(int n)
{ int count = 0;
for(int i = 0 ; i1.先計算func1的基本操作執行了多少次
f(n)=n^2+2*n+10
2.使用大o的漸進表示法
大o的漸進表示法:big o notation,用於描述函式的漸進行為的數學符號
大o漸進表示法的規則為
按照規則最後得到結果func1的時間複雜度為o(n^2)
空間複雜度
空間複雜度主要記住是計算變數的個數而不是程式占用了多少空間的大小,就不舉例項說明了。
二者區別
資料結構 時間複雜度 空間複雜度
1.演算法效率 演算法效率可以用來衡量乙個演算法的好壞 演算法效率分析分為兩種 第一種是時間效率,第二種是空間效率.時間效率被稱為時間複雜度,空間效率被稱為空間複雜度.時間複雜度主要衡量的是乙個演算法的執行速度,而空間複雜度主要衡量乙個演算法所需要的額外空間,在計算機發展的早期,計算機的儲存容量很小...
資料結構 時間 空間複雜度
1 演算法是指令的有窮序列。5個特徵 有窮性,確定性,可行性,輸入,輸出。4個要求 正確性,可讀性,健壯性,效率與低儲存量。2 漸進時間複雜度 t n o f n 漸進時間複雜度衡量的是乙個演算法基本操作執行次數的數量級,而不是單純地比較程式執行時間的長短。其真實意義應該是 是如果問題規模 n 趨向...
資料結構 時間,空間複雜度
幾個概念 演算法的複雜度 演算法的時間複雜度和演算法的空間複雜度 時間複雜度 實際上就是乙個函式,該函式計算的是執行基本操的次數 演算法存在最好,平均,最壞情況 空間複雜度 函式中建立個數關於問題規模函式表示式。時間複雜度與空間複雜度一般用o的漸進表示法表示。1 void test int n 總執...