自學 資料結構四月二十一日_時間複雜度&空間複雜度
PS: 今天週日鞏固一下所學的資料結構篇章
1. 如何衡量一個演算法的好壞?
時間複雜度&空間複雜度(這個是次要的)
2. 什麼是時間複雜度?
演算法中的基本操作的執行次數
3. 時間複雜度為什麼不使用時間來衡量而使用基本語句的執行次數來衡量?
因為一般和時間成正比
4. 時間複雜度的O漸進表示法
- 用1表示所有加法常數
- 在算出的執行次數中只保留最高項, 刪除其他項
5. 時間複雜度的:最優、平均、最差情況,為什麼時間複雜度看的是最差情況?
最大, 最小執行次數;
6. 如何求解:二分查詢、遞迴求階乘、遞迴斐波那契的時間複雜度?
二分: O(logN)
遞迴: O(N)
斐波那契額: O(2^n)
7. 什麼是空間複雜度?
佔用多少臨時儲存空間;
8. 如何求空間複雜度? 普通函式&遞迴函式
開闢了多少次空間, 多少深度;
9. 分析遞迴斐波那契數列的:時間、空間複雜度,並對其進行優化,偽遞迴優化—>迴圈優化
斐波那契函式:
long long Fibonacci(size_t N){
return N < 2 ? N : Fibonacci(N - 1) + Fibonacci(N - 2);
}
時間複雜度O(2^n) 空間複雜度O(N)
優化:
long long Fibonacci(long long first, long long second, int N){
if(N < 3){
return 1;
}
if(N == 3){
return first +second;
}
return Fibonacci(second, first+second, N - 1);
}
10. 常見時間複雜度
二分查詢: O(logN)
遞迴函式(二叉樹, 數分裂): O(N)
斐波那契函式(生兔子,下面之和): O(2^n)
氣泡排序: O(N^2)
相關文章
- 時間複雜度跟空間複雜度時間複雜度
- 時間複雜度與空間複雜度時間複雜度
- 時間複雜度和空間複雜度時間複雜度
- 資料結構:時間複雜度資料結構時間複雜度
- 時間複雜度O(n)和空間複雜度時間複雜度
- 資料結構-邏輯關係&物理關係、時間複雜度、空間複雜度、順序表資料結構時間複雜度
- 時間與空間複雜度分析複雜度
- 122 演算法的時間複雜度和空間複雜度詳解演算法時間複雜度
- PHP 演算法基礎----時間複雜度和空間複雜度(轉載)PHP演算法時間複雜度
- 那些年忽略的知識:時間複雜度和空間複雜度詳解時間複雜度
- 資料結構 之 演算法時間複雜度資料結構演算法時間複雜度
- 資料結構與演算法——時間複雜度資料結構演算法時間複雜度
- 時間複雜度怎麼算?如何計算時間複雜度?時間複雜度
- 資料結構基礎學習之時間複雜度分析資料結構時間複雜度
- 資料結構與演算法(一):帶你瞭解時間複雜度和空間複雜度到底是什麼?資料結構演算法時間複雜度
- JavaScript 資料結構與演算法之美 - 時間和空間複雜度JavaScript資料結構演算法複雜度
- 易被忽略的知識點之 ---- 各種時間複雜度和空間複雜度時間複雜度
- 冰與火之歌:「時間」與「空間」複雜度複雜度
- 圖解時間複雜度圖解時間複雜度
- 淺談時間複雜度時間複雜度
- dfs時間複雜度分析時間複雜度
- 時間複雜度(詳解)時間複雜度
- 資料結構-基本概念和時空複雜度資料結構複雜度
- 說說你對演算法中時間複雜度,空間複雜度的理解?如何計算?演算法時間複雜度
- 演算法的空間複雜度演算法複雜度
- 時間複雜度的計算時間複雜度
- 如何不用演算法對陣列進行(0時間複雜度,0空間複雜度)排序?演算法陣列時間複雜度排序
- 一文講透演算法中的時間複雜度和空間複雜度計算方式演算法時間複雜度
- 我們常說的演算法時間複雜度和空間複雜度到底是什麼?演算法時間複雜度
- 最詳細的解說—時間和空間複雜度複雜度
- 演算法與資料結構--空間複雜度O(1)遍歷樹演算法資料結構複雜度
- 1. 時間複雜度和空間複雜度 (7 天掌握演算法面試必考知識點)時間複雜度演算法面試
- 解惑3:時間頻度,演算法時間複雜度演算法時間複雜度
- 什麼才是真正的空間複雜度?複雜度
- 資料結構與演算法:演算法的時間複雜度資料結構演算法時間複雜度
- 前端資料結構---複雜度分析前端資料結構複雜度
- 演算法的時間複雜度演算法時間複雜度
- 演算法(一)時間複雜度演算法時間複雜度