數據結構和算法-時間複雜度和空間複雜度

算法時間複雜度的定義】算法

在進行算法分析時,語句總的執行次數T(n)是關於問題規模n的函數,進而分析T(n)隨n的變化狀況並肯定T(n)的數量級。算法的時間複雜度,也就是算法的時間量度,記做:T(n) = O(f(n))。它表示隨問題規模n的增大,算法執行時間的增加率和f(n)的增加率相同,稱做算法的漸近時間複雜度,簡稱爲時間複雜度。其中f(n)是問題規模n的某個函數。函數

即:執行次數=時間spa

如何分析一個算法的時間複雜度?即:如何推到大O階呢?】blog

     -用常數1取代運行時間中的全部加法常數ip

     -在修改後的運行次數函數中,只保留最高階項get

     -若是最高階項存在,且不是1,則去除與這個相乘的常數it

     -獲得的最後的結果就是大O階cli

【常見的時間複雜度】im

clip_image002

clip_image004

【經常使用的時間複雜度所耗費的時間從小到大依次是】d3

clip_image006

【最壞狀況與平均狀況】

clip_image008

【算法的空間複雜度】

clip_image010

相關文章
相關標籤/搜索