演算法時間頻度介紹和特點

victorfengming發表於2021-03-04

時間頻度

何為時間頻度

時間頻度:一個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。一個演算法中的語句執行次數稱為語句頻度或時間頻度。記為T(n)。[舉例說明]

舉例說明-基本案例

比如計算1-100所有數字之和, 我們設計兩種演算法:

image-20210222135219083

T(n)=n+1;

image-20210222135250428

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

image-20210222135534763

結論:

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

image-20210222135717981

結論:

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

image-20210222140019981

結論:

隨著n值變大,5n^2+7n3n^2 + 2n ,執行曲線重合, 說明 這種情況下, 5和3可以忽略。 而n^3+5n6n^3+4n ,執行曲線分離,說明多少次方式關鍵

本作品採用《CC 協議》,轉載必須註明作者和本文連結
秋葉夏風

相關文章