【算法筆記】算法的平均時間復雜度A(n)的公式及示例

算法平均時間復雜度計算公式

A(n) = \sum\limits_{I\in S}P_I t_I
其中:

  • S是規模為n的實例集
  • 實例I的概率為P_I
  • 實例I的基本運算次數(也就是工作量)為t_I

舉例:檢索問題,數組Ln個元素,每個元素為從1到n的整數。若待檢索元素在L中(例如1,2,3,4,5),則比較次數為其本身。若待檢索元素位于L的空隙中(例如0.5,1.5,2.5),則比較次數為n,也就是從頭到尾比較一遍。若位于L和位于L的空隙的待檢索元素數量各占一半,檢索的平均時間復雜度是多少?

位于L的情況:假設xL的概率為P,則x在每個位置的概率為\frac{P}{n},若x的值為i,則需要比較i次。平均時間復雜度為\sum\limits_{i=1}^{n} i\frac{P}{n}

位于L的空隙的情況:x不在L的概率為1-P,每種情況都要比較n次,則該情況的平均時間復雜度為(1-P)n

綜上,結合等差數列求和公式有:
\begin{aligned} A(n)&=\sum\limits_{i=1}^{n} i\frac{P}{n}+(1-P)n \\ &=\frac{(1+n)P}{2}+ (1-P)n\\ \end{aligned}

P = \frac{1}{2}
A(n)=\frac{1+n}{4}+\frac{n}{2}\approx \frac{3n}{4}

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 六神上課時說了,如果你想成為什么樣的人,就去進行深度模仿。個人認為,如果首先不進行深度模仿,可能連為什么成功者...
    5分鐘區塊鏈閱讀 463評論 1 4
  • 上一章【情感】一遇渣男誤終生(2) 可我等的有些心灰意冷了。我是不是做錯了,我都做了些什么,李才是自己要找的依靠啊...
    一碗石榴閱讀 358評論 0 0
  • 我在好多好多年前就認識你了 所以如老友般的慢慢的過著 秋與冬的涼夜 你的與我的孤寂 我們以為的一直可以走下去 我以...
    梵夜閱讀 221評論 0 0
  • 肌膚糖化是怎么回事? 肌膚的衰老,相信各位小姐姐們對“抗氧化”心得頗豐,但對于“糖化”沒有什么印象,事實上上,抗糖...
    朱燕春暖花開閱讀 357評論 0 0
  • 跨部門之間的溝通,需要彼此的信任感加強,處理好之間的關系更有利于溝通,同時也需要的是部門之間的配合融洽。
    孫倩倩Rela閱讀 100評論 0 0