1. 程式人生 > 其它 >「題解」Codeforces 1605 D Treelabeling

「題解」Codeforces 1605 D Treelabeling

度量一個程式(演算法)執行時間的兩種方法:

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. 忽略係數;