1. 程式人生 > >Chapter4 複雜度分析(下):淺析最好,最壞,平均,均攤時間複雜度

Chapter4 複雜度分析(下):淺析最好,最壞,平均,均攤時間複雜度

四個複雜度分析:

1:最好情況時間複雜度(best case time complexity)

2:最壞情況時間複雜度(worst case time complexity)

3:平均情況時間複雜度(average case time complexity)

4:均攤時間複雜度(amortized time complexity)

 

for (; i < n; ++i)

{

if (array[i] == x)

{

pos = i;

break;

  }

  }

 

 

分析:1:最好情況時間複雜度:O(1)

  2:最壞情況時間複雜度

:O(n),因此在不同的情況下,這段程式碼的時間複雜度是不一樣的,所以引入三個概念:最好,最壞,平均情況複雜度。

3:平均情況複雜度:

I:要查詢的變數X在陣列中的位置有n+1種情況:在陣列的0~n-1位置中和不在陣列中,我們把每種情況下,查詢需要遍歷的次數累加起來,然後除以n+1,就可以得到需要遍歷的元素個數的平均值,即:

(1+2+3+……+n+n)/(n+1)=n(n+3)/2(n+1)

得到平均時間複雜度就是O(n)

  II:概率分析法

4:均攤時間複雜度(攤換分析,平攤分析)