二分查找的平均查找长度
对二分查找的平均查找长度进行简单分析。
向作出假设:要查找的元素在数组内,数组长度为 nnn. 约定对长度为 nnn 的数组,平均查找长度为随机变量 CnC_nCn,随机变量 InI_nIn 定义如下
In={1要查找的关键字是这个长度为n的数组的中间的关键字0otherwise, I_n=\left\{ \begin{matrix} 1 & 要查找的关键字是这个长度为 n 的数组的中间的关键字\\ 0 & \mathrm{otherwise} \end{matrix} \right., In={10要查找的关键字是这个长度为n的数组的中间的关键字otherwise,
那么
Cn=In+(1−In)(Cn/2+1), C_n=I_n+(1-I_n)(C_{n/2}+1), Cn=In+(1−In)(Cn/2+1),
取其期望值
E(Cn)=1n+(1−1n)E(Cn/2+1)<1n+1+E(Cn/2), E(C_n)=\frac1n+\left(1-\frac1n\right)E(C_{n/2}+1)<\frac1n+1+E(C_{n/2}), E(Cn)=n1+(1−n1)E(Cn/2+1)<n1+1+E(Cn/2),
展开
E(Cn)=1+⋯+2⌊logn⌋n+⌊logn⌋+c=Θ(logn). E(C_n)=\frac{1+\cdots+2^{\lfloor\log{n}\rfloor}}n+\lfloor\log{n}\rfloor+c=\Theta(\log {n}). E(Cn)=n1+⋯+2⌊logn⌋+⌊logn⌋+c=Θ(logn).
简单分析,还有很多不完备的地方。

7593

被折叠的 条评论
为什么被折叠?



