演算法筆記 時間 空間複雜度理解

2021-10-06 21:27:13 字數 528 閱讀 5317

演算法的時間複雜度、空間複雜度其實就是編寫的程式所需要消耗的時間長短、儲存資源多少的定量評價。

養成對於計算時間和計算空間使用分配上的「斤斤計較」是對自己程式設計高要求的體現,也是成為乙個高階程式開發者的必備內功。

常見的時間複雜度有常數複雜度、對數複雜度、線性時間複雜度、平方複雜度、立方複雜度、指數複雜度、階乘複雜度。以上時間複雜度由低到高排列。

時間複雜度從數學角度來說是複雜的精確的,但對於演算法的理解比較來說並不需要那麼準確,只需要定性的知道複雜度的量級即可(如常數級、對數、線性、平方等),所以將複雜的時間複雜度計算變為簡化的可用的理論是主方法理論。描述時間複雜的理論叫做大歐理論

空間複雜度,就是在運算過程中需要用到的最大的儲存空間數。

1. 和面試官交流確認,準確理解題目; 

2. 正確的列舉自己能給出的解決方法;

3. 比較分析各個方法的時間空間複雜度;

4. 選取最優的演算法進行解釋計算完成解答。

演算法時間複雜度空間複雜度

演算法 是解決某一類問題的通法,即一系列清晰無歧義的計算指令。每個演算法只能解決具有特定特徵的一類問題,但乙個問題可由多個演算法解決。乙個演算法應該有以下五個方面的特性 比較演算法的優劣我們從兩個維度去進行考量 時間 空間 時間複雜度,空間複雜度 找出基本語句 演算法中執行次數最多的那條語句就是基本...

演算法 時間複雜度 空間複雜度

1 if i 1 2 a 1 result 3 4 result n 2 result 1000 1000 3 array.push a array.pop 4 map.set 1,1 map.get 1,1 在計算複雜度的時候,o 1 一般會被忽略。1 for let i 0 i n i 2 wh...

概念理解 時間複雜度 空間複雜度

一.時間複雜度 time complexity 在進行演算法分析時,語句總執行次數t n 是關於問題規模 n 的函式。進而分析執行次數t n 隨規模 n 的變化情況並確定t n 的數量級。演算法的時間複雜度就是演算法的時間度量,記作t n o f n 它表示隨問題規模 n 的增大,演算法的執行時間的...