《算法设计与分析》——用检索讨论时间复杂度
作者:互联网
检索
1. 检索问题
输入:2. 顺序检索算法
j =1, 将 x 与 L [ j ]比较:
x = 4,需要比较4次;x = 2.5,需要比较5次
2.1 最坏情况的时间估计
不同的输入:2.2 平均情况的时间估计
输入实例的概率分布:T a v g ( n ) = ∑ i = 1 n p n i + ( 1 − p ) n = p n n ( n + 1 ) 2 + ( 1 − p ) n = p ( n + 1 ) 2 + ( 1 − p ) n T_{avg}(n)=\displaystyle\sum_{i=1}^{n}\ \frac{p}{n} i+(1-p)n=\frac{p}{n}\frac{n(n+1)}{2}+(1-p)n=\frac{p(n+1)}{2}+(1-p)n Tavg(n)=i=1∑n npi+(1−p)n=np2n(n+1)+(1−p)n=2p(n+1)+(1−p)n
3. 改进顺序检索算法
j =1, 将 x 与L [ j ] (非降顺序排列)比较:
x = 4,需要比较4次;x = 2.5,需要比较3次
3.1 最坏情况的时间估计
T m a x ( n ) = n T_{max}(n)=n Tmax(n)=n
3.2 平均情况的时间估计
输入实例的概率分布:T x ∉ L ( n ) = T ( x < L 1 ) + T ( L 1 < x < L 2 ) + … … + T ( L n − 1 < x < L n ) + T ( L n < x ) = 1 + 2 + … … + n + n n + 1 = n 2 + n n + 1 T_{x∉L}(n)=T_{(x<L_1)}+T_{(L_1<x<L_2)}+……+T_{(L_{n-1}<x<L_n)}+T_{(Ln<x)}=\frac{1+2+……+n+n}{n+1}=\frac{n}{2}+\frac{n}{n+1} Tx∈/L(n)=T(x<L1)+T(L1<x<L2)+……+T(Ln−1<x<Ln)+T(Ln<x)=n+11+2+……+n+n=2n+n+1n
所以:T a v g = T x ∉ L ( n ) + T x ∈ L ( n ) = p ( n + 1 ) 2 + n 2 + n n + 1 T_{avg}=T_{x∉L}(n)+T_{x∈L}(n)=\frac{p(n+1)}{2}+\frac{n}{2}+\frac{n}{n+1} Tavg=Tx∈/L(n)+Tx∈L(n)=2p(n+1)+2n+n+1n
标签:检索,frac,复杂度,最坏,算法,估计,比较 来源: https://blog.csdn.net/weixin_45488518/article/details/114696296