教你看懂算法執行時間、算法時間復雜度、算法空間復雜度


一、算法執行時間

執行時間:所有語句執行時間的總和,與軟硬件環境有關

語句執行時間:該條語句的重復執行次數 * 執行一次所需的時間

語句頻度: 一條語句的重復執行次數

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)) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM