時間頻度
何為時間頻度
時間頻度:一個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。一個演算法中的語句執行次數稱為語句頻度或時間頻度。記為T(n)。[舉例說明]
舉例說明-基本案例
比如計算1-100所有數字之和, 我們設計兩種演算法:
T(n)=n+1;
T(n)=1
舉例說明-忽略常數項
T(n)=2n+20 | T(n)=2*n | T(3n+10) | T(3n) | |
---|---|---|---|---|
1 | 22 | 2 | 13 | 3 |
2 | 24 | 4 | 16 | 6 |
5 | 30 | 10 | 25 | 15 |
8 | 36 | 16 | 34 | 24 |
15 | 50 | 30 | 55 | 45 |
30 | 80 | 60 | 100 | 90 |
100 | 220 | 200 | 310 | 300 |
300 | 620 | 600 | 910 | 900 |
結論:
2n+20 和 2n 隨著n 變大,執行曲線無限接近, 20可以忽略 3n+10 和 3n 隨著n 變大,執行曲線無限接近, 10可以忽略
舉例說明-忽略低次項
T(n)=2n^2+3n+10 | T(2n^2) | T(n^2+5n+20) | T(n^2) | |
---|---|---|---|---|
1 | 15 | 2 | 26 | 1 |
2 | 24 | 8 | 34 | 4 |
5 | 75 | 50 | 70 | 25 |
8 | 162 | 128 | 124 | 64 |
15 | 505 | 450 | 320 | 225 |
30 | 1900 | 1800 | 1070 | 900 |
100 | 20310 | 20000 | 10520 | 10000 |
結論:
2n^2+3n+10` 和 `2n^2` 隨著`n` 變大, 執行曲線無限接近, 可以忽略 `3n+10` `n^2+5n+20` 和 `n^2` 隨著`n` 變大,執行曲線無限接近, 可以忽略 `5n+20
同階無窮大
舉例說明-忽略係數
T(3n^2+2n) | T(5n^2+7n) | T(n^3+5n) | T(6n^3+4n) | |
---|---|---|---|---|
1 | 5 | 12 | 6 | 10 |
2 | 16 | 34 | 18 | 56 |
5 | 85 | 160 | 150 | 770 |
8 | 208 | 376 | 552 | 3104 |
15 | 705 | 1230 | 3450 | 20310 |
30 | 2760 | 4710 | 27150 | 162120 |
100 | 30200 | 50700 | 1000500 | 6000400 |
結論:
隨著n值變大,5n^2+7n
和3n^2 + 2n
,執行曲線重合, 說明 這種情況下, 5和3可以忽略。 而n^3+5n
和 6n^3+4n
,執行曲線分離,說明多少次方式關鍵
本作品採用《CC 協議》,轉載必須註明作者和本文連結