【数据结构】-查找-折半查找和顺序查找-空节点是否算一次比较?

本文探讨了数据结构中的查找方法,包括顺序查找和折半查找。顺序查找适用于无序序列,查找成功平均查找长度不变,查找失败时增加一个哨兵节点。而折半查找要求序列有序,其查找失败时不计算空节点比较次数。文章还提到了查找次数在不同情况下的计算,如哈希表中的拉链法和开放地址法的区别,并给出了编程实现的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【顺序查找】

原理:从最后一个元素往前这个判断,待查找的元素放在第0个位置做哨兵,第0个位置不存储序列元素(哨兵的作用:减少for循环中越界判断的条件)

☆查找成功的ASL:(1+2+3....+n)/n=(n+1)/2

☆查找失败的ASL:n+1(n个元素加第0个位置的哨兵)

算法进行改进:将所有的元素顺序排序,此时,ASL有变化!

☆查找成功的ASL:无变化

☆查找失败的ASL: (1+2+3+4+..n+n)/n+1=n/2+n/n+1(如下图所示,有n+1个失败结点)

特点:不要求序列有序,不限制存储结构

【折半查找】

特点:必须要求待查找的序列有序(因此下面的算法增加了函数来判断序列是否有序),必须顺序存储

关于折半查找的ASL重点看下面这个题

第一步 :随意画一棵查找树,其特

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vector<>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值