美文网首页
【算法笔记】算法的平均时间复杂度A(n)的公式及示例

【算法笔记】算法的平均时间复杂度A(n)的公式及示例

作者: w8ed | 来源:发表于2019-03-24 22:25 被阅读0次

算法平均时间复杂度计算公式

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}

相关文章

  • 【算法笔记】算法的平均时间复杂度A(n)的公式及示例

    算法平均时间复杂度计算公式 其中: 是规模为的实例集 实例的概率为 实例的基本运算次数(也就是工作量)为 举例:检...

  • 递归算法的时间复杂度

    求解递归算法时间复杂度的公式master公式 T(N) = a*T(N/b) + O(N^d) log(b,a) ...

  • 排序算法总结

    1. 排序算法 1.1. 排序算法比较 排序算法平均时间复杂度最差时间复杂度空间复杂度数据对象稳定性冒泡排序O(n...

  • LeetCode-排序算法

    LeetCode-排序算法 时间复杂度 排序算法平均时间复杂度冒泡排序O(n2)选择排序O(n2)插入排序O(n2...

  • 快速排序

    分类:排序算法 数据结构:不定 最坏时间复杂度:O(n^2) 最优时间复杂度:O(n log n) 平均时间复杂度...

  • 最大子序列和问题的几种实现

    算法一,暴力法,时间复杂度O(n^3): 算法二,时间复杂度O(n^2): 算法三,在线处理,时间复杂度O(n):...

  • 算法与数据结构-排序(3)

    常见排序算法 算法平均时间复杂度原地排序稳定排序插入排序O(n^2) ,有序情况 -> O(n)TrueTrue快...

  • 插入排序

    分类:排序算法 数据结构:数组 最坏时间复杂度:O(n^2) 最优时间复杂度:O(n) 平均时间复杂度:O(n^2...

  • 冒泡排序

    分类:排序算法 数据结构:数组 最坏时间复杂度:O(n^2) 最优时间复杂度:O(n^2) 平均时间复杂度:O(n...

  • day09-冒泡排序+优化

    排序算法(SortAlgorithm) 算法时间复杂度总结: 排序方法时间复杂度(平均)时间复杂度(最坏)时间复杂...

网友评论

      本文标题:【算法笔记】算法的平均时间复杂度A(n)的公式及示例

      本文链接:https://www.haomeiwen.com/subject/ywgpvqtx.html