「題解」Codeforces 1605 D Treelabeling
阿新 • • 發佈:2021-11-13
度量一個程式(演算法)執行時間的兩種方法:
1. 事後統計方法
存在問題:
(1)如果相對設計的演算法的執行效能進行評測,需要實際執行該程式;
(2)所得時間的統計量依賴於計算機的硬體、軟體等環境因素,這種方式,要在同一臺計算機的相同狀態下執行,才能比較哪個演算法速度更快。
2. 事前估算方法
通過分析某個演算法的時間複雜度來判斷哪個演算法更優。
時間頻度
時間頻度:一個演算法花費的時間與演算法中語句的執行次數成正比,哪個演算法中語句執行次數多,它花費的時間就多。一個演算法中的語句執行次數稱為語句頻度或事件頻度。記為T(n)
。
舉例:
int total = 0; int end = 100; for(int i = 0;i <= end;i++){ total += i; } /* T(n) = n+1 直接計算 total = (1+end)*end/2; T(n) = 1; */
特點:
1. 忽略常數項;
2. 忽略低次項;
3. 忽略係數;