算法平均时间复杂度计算公式
其中:
-
是规模为
的实例集
- 实例
的概率为
- 实例
的基本运算次数(也就是工作量)为
举例:检索问题,数组有
个元素,每个元素为从1到n的整数。若待检索元素在
中(例如1,2,3,4,5),则比较次数为其本身。若待检索元素位于
的空隙中(例如0.5,1.5,2.5),则比较次数为
,也就是从头到尾比较一遍。若位于
和位于
的空隙的待检索元素数量各占一半,检索的平均时间复杂度是多少?
位于的情况:假设
在
的概率为
,则
在每个位置的概率为
,若
的值为
,则需要比较
次。平均时间复杂度为
位于的空隙的情况:
不在
的概率为
,每种情况都要比较
次,则该情况的平均时间复杂度为
综上,结合等差数列求和公式有:
当,
网友评论