最近,在讀《資料結構與演算法分析,c語言描述》。
第二章,演算法分析,講述了,執行時間計算方法。是我見過,講的最好的了。
乙個簡單例子。
計算立方和。
intsum( int n)
關鍵分析:四則運算,或者任意乙個操作,每次占用乙個時間單元。
第1行和第4行,各佔乙個時間單元。第3行,每次執行,佔4個時間單元(2次乘法,1次加法,1次賦值),執行n次,就會占用4n個時間單元。
第2行,初始化佔1個,比較佔n+1個,自增佔n個,總共2n+2個時間單元。
總量是:6n+4
因此,我們說這個函式是 o(n) 。
所以:雙重for迴圈,是o(n^2)
3重for迴圈,是o(n^3)
演算法時間複雜度分析
定義 如果乙個問題的規模是n,解這一問題的某一演算法所需要的時間為t n 它是n的某一函式 t n 稱為這一演算法的 時間複雜性 求解演算法的時間複雜度的具體步驟是 1 找出演算法中的基本語句 演算法中執行次數最多的那條語句就是基本語句,通常是最內層迴圈的迴圈體。2 計算基本語句的執行次數的數量級 ...
演算法分析時間複雜度
對乙個演算法的分析,很多時候我們更關心演算法執行的時間複雜度。演算法的時間複雜度中,我們關心演算法執行的時間上界。即大o階分析方法。時間複雜度的分類 1 沒有迴圈遞迴的基本都是常數階。2 有一層迴圈的就是線性階。for int i 0 i dosth 3 對數階 一般類似如下 while i i i...
演算法時間複雜度分析
簡單而言,演算法時間複雜度就是數學裡面的函式,也就是演算法的時間度量,一般記作 t n o f n 演算法分析的分類 1.最壞情況 任意輸入規模的最大執行時間。上界 2.平均情況 任意輸入規模的期望執行時間。3.最好情況 任意輸入規模的最小執行時間,通常最好情況不會出現。下界 情景一 常數階 int...