一、算法執行時間
執行時間:所有語句執行時間的總和,與軟硬件環境有關
語句執行時間:該條語句的重復執行次數 * 執行一次所需的時間
語句頻度: 一條語句的重復執行次數
ps:執行時間並非精確,而是通過估計語句的執行次數得到的算法執行時間
將頻度相加,可以得到最終的執行時間 T(n) = 2n³ + 2n² + 2n + 1
二、算法時間復雜度
上面我們知道了什么是算法的執行時間 ,由T(n)表示。現在聊聊算法的時間復雜度~
當n趨於無窮時, T(n)的數量級稱為算法漸進時間復雜度,采用大O表示數量級,記作:T(n) = O(f(n))
fn(n) 一般是算法的最大語句頻度(最高數量級),通常都忽略掉常系數,保留最高數量級。【2n³ + 2n² + 2n + 1 , 此處的n³就是最高數量級,系數和其他的數量級都可以忽略了】
因為:隨着n的不斷增大(抽象:直接理解n是很大的不可預知的數),算法執行時間的增長率和f(n)的增長率相同,簡稱時間復雜度(全名漸進時間復雜度)。
所以上述例子中的 時間復雜度 T(n) = O(n³)
此處貼一張某視頻教程里的圖,越平緩的時間復雜度算法越好哦~
三、算法空間復雜度
可以簡單理解為這段算法需要占用多少存儲空間(一個程序所需的空間包括算法本身所占用存儲空間,輸入數據占用的存儲空間,算法在運行過程中的工作單元和實現算法所需要的輔助空間。但是計算算法空間復雜度時只分析算法執行時所需的輔助空間),與時間復雜度類似:S(n) = O(f(n))