1,算法時間複雜度的定義html
算法時間複雜度用來度量算法執行時間。影響算法執行時間的因素有:算法
衡量時間複雜度一般有兩種方法:過後統計和事前分析。函數
過後統計是指運行依據算法編制的程序,由計算機統計算法執行的時間。依據算法編制程序耗時耗力,並且同一個算法選用不一樣的程序語言編寫執行效率可能不一樣,同一個程序選用不一樣的編譯器編譯的機器碼質量也可能不一樣,不一樣配置的計算機執行機器指令的速度也千差萬別。這些因素都有可能掩蓋算法自己的優劣,不適合做爲算法評估的通用方法。spa
爲了避開過後統計的諸多缺點,採用事前分析,單單評價算法選用的策略的優劣。此時算法執行時間與算法語句執行的次數相關,而語句執行的次數每每與問題的規模相關,即與輸入數據的數量的多少有關。因爲只是定性的分析算法的優劣,因此沒有必要精確計算算法執行的時間,使注意力集中在增加率上,由此引入漸進時間複雜度,簡稱時間複雜度。常使用最深層循環內的語句中的原操做的執行頻度來表示。.net
2,算法時間複雜度的計算方法設計
3,經常使用算法時間複雜度的比較code
1-4代表算法時間效率比較高,5代表通常,6-7比較糟糕htm
4,算法時間複雜度分析實例blog
1 temp = i; 2 i = j; 3 j = temp;
1 i = 1; 2 while(i <= n) 3 { 4 i = i * 2; 5 }
1 sum = 0; 2 for(i=1;i<=n;i++) 3 { 4 sum = sum + i; 5 }
1 sum = 0; 2 for(i=1;i<=n;i++) 3 { 4 for(j=1;j<=n;j++) 5 { 6 sum++; 7 } 8 }
1 sum = 0; 2 for(i=1;i<=n;i++) 3 { 4 for(j=1;j<=i;j++) 5 { 6 for(k=0;k<j;k++) 7 { 8 sum = sum + 2; 9 } 10 } 11 }
5,參考資料編譯器