問:複雜度分析要解決什麼問題?
答:分析、統計演算法的執行效率和資源的消耗
問:通過**跑一遍,統計、監控,得到演算法執行的時間和占用的記憶體大小的侷限性
答: 1. 測試結果依賴測試環境
2. 受資料規模的影響較大
問:什麼是大o複雜度表示法?
答:表示**執行時間隨著資料規模增長的趨勢,也稱漸進時間複雜度
問:如何分析時間複雜度?
答: 1. 只關注迴圈執行次數最多的那一段**
2. 加法法則,總複雜度等於量級最大的那段**的複雜度
3. 乘法法則,巢狀**的複雜度等於巢狀內外**複雜度的乘積
問:幾種常見的時間複雜度
答: 1. 常量階 o(1),一般是沒有迴圈和遞迴的情況
2. 對數階 o(logn)
3. 線性階 o(n)
4. 線性對數階 o(nlogn)
5. 指數階 o(2^n)
6. 階乘階 o(n!)
7. 平方階 o(n^2) ...
問:什麼是空間複雜度?
答:表示演算法的儲存空間與資料規模之間的增長關係
常用的時間複雜度
複雜度分析的幾個知識點:
1. 最好情況時間複雜度
2. 對壞情況時間複雜度
3. 平均情況時間複雜度
4. 均攤情況時間複雜度
重溫演算法 Day1 複雜度分析上
最近加入了個重溫演算法的群,60天將常用的資料結構和演算法過一遍,要求每週至少打卡3次。在時間允許的情況下,每天晚上看上1到2個小時,鞏固演算法還是很不錯的。在重溫的同時,我將筆記整理到到此。決定演算法快慢的因素有很多,但是所有的因素可以分為兩類。第一類是不隨資料量變化的因素,第二類是隨著數量變化的...
複雜度分析 1
空間複雜度 時間複雜度 第一段 1 intcal int n 7return sum 8 如上所示 求 1,2,3 n 的累加和,從cpu的角度看,這段 每一行都執行著類似的操作 讀資料 運算 寫資料。我們假設每行 執行的時間是一樣的,為unit time,在這個基礎上,我們可以估算出這段 的總的執...
複雜度分析 時間複雜度分析和空間複雜度分析
其實,只要講到資料結構與演算法,就一定離不開時間 空間複雜度分析。而且我個人認為,複雜度分析是整個演算法學習的精髓,只要掌握了它,資料結構和演算法的內容基本上就掌握了一半。1.時間複雜度分析 對於剛才羅列的複雜度量級,我們可以粗略地分為兩類,多項式量級和非多項式量級。其中,非多項式量級只有兩個 o ...