測試演算法效率(即運算時間):
事後統計方法:主要通過設計好的測試程式和資料,利用計算機計時器對不同演算法編制的程式的執行時間進行比較,從而確定演算法效率的高低
事前分析估算方法(比上個方法更優):在計算機編寫程式前,依據統計方法對演算法進行估算
乙個高階語言在計算機上執行時所消耗的時間取決於下列因素:
1.演算法採用的策略和方案
2.編譯產生的**質量
3.問題的輸入規模
4.機器執行指令的速度
判斷乙個演算法的效率時,函式中的常數和其他次要項常常可以忽略,而更應該關注主項(最高項)的階數
演算法的時間複雜度:t(n) = o(f(n)),表示隨問題規模n的增大,演算法執行時間的增長率和f(n)的增長率相同,稱作演算法的漸近時間複雜度,簡稱為時間複雜度
演算法的空間複雜度:s(n) = o(f(n)),表示隨問題規模n的增大,演算法執行空間的增長率和f(n)的增長率相同,稱作演算法空間複雜度,f(n)為語句關於n所佔儲存空間的函式
資料結構時間複雜度和空間複雜度
1 演算法o n 關注n的階數,當數十分大的時候,常數可以忽略。o n 又稱為大o記法。2 t n o f n 隨著n變化而變化,f n 是某個函式,執行的次數等於時間,一般情況下,t n 增長最慢的演算法最優。4 推到o n 1,用1取代時間中所有加法常數 哪些可以忽略 2,在修改後的執行函式中,...
資料結構 時間複雜度和空間複雜度
通常我們衡量乙個演算法的複雜度時,會有兩種演算法效率分析方式 第一種是時間效率,第二種是空間效率。時間效率被稱為時間複雜度,而空間效率被稱作空間複雜度。時間複雜度主要衡量的是乙個演算法的執行速度,空間複雜度主要衡量一乙個演算法所需要的額外空間,在計算機發展的早期,計算機的儲存容量很小。所以對空間複雜...
資料結構 時間複雜度和空間複雜度
演算法 algorithm 是對特定問題求解步驟的一種描述。解決乙個問題往往有不止一種方法,演算法也是如此。那麼解決特定問題的多個演算法之間如何衡量它們的優劣呢?有如下的指標 1 時間複雜度 執行這個演算法需要消耗多少時間。2 空間複雜度 這個演算法需要占用多少記憶體空間。同乙個問題可以用不同的演算...