数据结构 --- 查找算法

1.折半查找(二分查找)

 

        只适用于有序(升序或降序)的顺序表

        eg.查找序列中35元素

        (1)当mid=35时,查找到该目标;

        (2)若35<mid,则high=mid-1,low不变;

        (3)若35>mid,则low=mid+1,high不变;继续查找

        重复上述(1)(2)(3)过程

2. 折半查找-查找判定树

构建查找判定树:(1)将序列有序排列后标示下标。(首元素下标+末元素下标 )/2向下取整,即为树的根节点,确定根节点后,根节点的左半边和右半边使用同样方法确定根节点的左孩子和右孩子。(向下取整:eg.\left \lfloor 5.5 \right \rfloor=5)。

                             (2)补齐查找失败的节点。

折半查找平均查找长度的计算:

                                (1)查找成功的平均查找长度:

                                (2)查找失败的平均查找长度:

3.分块查找

分块查找的平均长度=查找索引表确定所在块的平均查找长度+块中查找元素的平均长度;

  • 查找索引表确定所在块的平均查找长度与索引表长度有关;
  • 块中查找元素的平均长度与块的长度有关。

4.分块查找(索引顺序查找),是顺序查找的一种改进方式

        (1)先查找索引表,确定待查元素所属的分块(采用顺序查找或折半查找)。

        (2)在分块内用顺序查找法。

 5.分块查找效率分析

         其中,Lb为索引表的平均查找长度,Ls为所属分块的平均查找长度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值