資料結構和演算法中的複雜度分析

2021-09-01 12:20:36 字數 669 閱讀 7779

了解複雜度分析,資料結構和演算法中複雜度分為時間複雜度和空間複雜度,我們用大o表示法,時間複雜度分析用三種方法分析:

1、只關注迴圈執行次數最多的一段**,以下**複雜度為o(n)

private int cal(int n)

return sum;

}

2. 加法法則:總複雜度等於量級最大的那段**的複雜度,以下**複雜度為o(n²)

int cal(int n)

for(int i=1; i <= n; i++)

}return sum + sum2;

}

3. 乘法法則:巢狀**的複雜度等於巢狀內外**複雜度的乘積,以下**複雜度為o(n²)

int cal(int n)

return sum;

}int sum2(int n)

return sum2;

}

以下是常見的幾種時間複雜度(複雜度量級依次遞增):

以上可以簡單分兩類,前面的屬於多項式量級,最後兩種屬於非多項式量級,當資料規模 n 越來越大時,非多項式量級演算法的執行時間會急劇增加,求解問題的時間會無限增長;

int a = new int[n];

這段**的空間複雜度就是為o(n)。

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

演算法的執行效率,粗略的講就是演算法的執行時間,那麼如何在不執行 的情況下,估算 的執行時間呢 我們先看乙個簡單的求和 1 int cal int n 7 return sum 8 從cpu的角度來看,每一行 都做著相同的工作,讀資料 計算 寫資料,儘管每行 對應的cpu的執行個數,執行時間都不一樣...

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

如何衡量 的效率?時間和空間複雜度分析。這個是資料結構和演算法的重中之重 資料結構和演算法的作用主要是用來解決 快 和 省 的問題。即如何讓 執行的更快,如何讓 更節省記憶體空間。執行效率是一項非常重要的考量指標。而我們可以時間 空間複雜度分析 的執行效率。事後統計法 我們可以跑一遍 通過統計 監控...

資料結構和演算法 複雜度

演算法複雜度 1 時間複雜度 表示演算法的執行時間與資料規模之間的增長關係 1 只關注迴圈執行次數最多的一段 2 加法法則 總複雜度等於量級最大的那段 的複雜度 3 乘法法則 巢狀 的複雜度等於巢狀內外 複雜度的乘積 幾種常見時間複雜度例項分析 最好 最壞 平均 均攤時間複雜度要根據具體的演算法進行...