付付的資料結構2 時間複雜度和空間複雜度

2021-10-22 17:28:38 字數 653 閱讀 3624

時間複雜度和空間複雜度是來衡量乙個演算法的執行效率。

所謂演算法,即解決問題的方法。同乙個問題,使用不同的演算法,雖然得到的結果相同,但耗費的時間和資源肯定有所差異。就比如擰乙個螺母,扳手和鉗子都可以勝任,但使用鉗子擰螺母肯定沒有扳手的效率高。

解決問題的演算法有多種,我們就需要從中選出最好的那乙個。那麼,怎麼判斷哪個演算法更好(或者更優)呢?

根據演算法編寫出的程式,執行時間更短,執行期間占用的記憶體更少,該演算法的執行效率就更高,演算法也就更好。

如何衡量乙個演算法所編寫出程式的執行效率呢?

資料結構中,用時間複雜度來衡量程式執行時間的多少;用空間複雜度來衡量程式執行所需記憶體空間的大小。

據結構推出了大 o 記法(注意,是大寫的字母 o,不是數字 0)來表示演算法(程式)的執行時間。發展至今,此方法已為大多數人所採納。

列舉了常用的幾種時間複雜度,以及它們之間的大小關係:

o(1)常數階 < o(logn)對數階 < o(n)線性階 < o(n2)平方階 < o(n3)(立方階) < o(2n) (指數階)
和時間複雜度類似,乙個演算法的空間複雜度,也常用大 o 記法表示。

在多數場景中,乙個好的演算法往往更注重的是時間複雜度的比較,而空間複雜度只要在乙個合理的範圍內就可以。

資料結構01 時間複雜度和空間複雜度

什麼是時間複雜度?什麼是空間複雜度?遞迴斐波那契數列優化,尾遞迴優化 迴圈優化 常見時間複雜度 演算法就是計算或解決問題的步驟,用來將輸入資料轉化成輸出結果。演算法效率分析分為兩種 第一種是時間效率,第二種是空間效率。時間效率被稱為時間複雜度,而空間效率被稱作空間複雜度。時間複雜度主要衡量的是乙個演...

資料結構與演算法2 時間複雜度和空間複雜度

演算法效率的度量方法 事後統計的方法 事前分析估算方法。演算法的時間複雜度 在進行演算法分析時,語句總的執行次數t n 是關於問題規模n的函式,進而分析t n 隨n的變化情況並確定t n 的數量級。演算法的時間複雜度記作 t n o f n 它表示隨問題規模n的增大,演算法執行時間的增長率和f n ...

資料結構和演算法(二) 時間複雜度和空間複雜度

演算法效率的度量方法 事後統計方法 這種方法主要是通過設計好的測試程式和資料,利用計算機計時器對不同酸防編制的程式執行時間進行比較,從而確定演算法效率的高低。這種方法有很大的缺陷,必須依據演算法事先編制好測試程式,通常需要花費大量時間和精力,如果完了發覺測試的是糟糕的演算法,就會功虧一簣。不同測試環...