数据结构之查找运算

查找运算查找线性表的查找顺序查找(都是从后往前找)折半查找(二分查找)分块查找(索引顺序查找)数表的查找哈希表(散列表的查找)查找查找表可分为两类静态查找表仅作查询和检索操作的查找表。动态查找表有时在查询之后,还需要将“查询”结果为“不在查找表中”的数据元素插入到查找表中;或者,从查找表中删除其“查询”结果为“在查找表中”的数据元素。关键字是数据元素(或记录)中某个数据项...
摘要由CSDN通过智能技术生成

查找

  • 查找表可分为两类
  1. 静态查找表
    仅作查询和检索操作的查找表。
  2. 动态查找表
    有时在查询之后,还需要将“查询”结果为“不在查找表中”的数据元素插入到查找表中;或者,从查找表中删除其“查询”结果为“在查找表中”的数据元素。
  • 关键字
    是数据元素(或记录)中某个数据项的值,用以标识(识别)一个数据元素(或记录)。
    若此关键字可以识别唯一的一个记录,则称之谓“主关键字”。
    若此关键字能识别若干记录,则称
    之谓“次关键字”。

线性表的查找

顺序查找(都是从后往前找)

顺序查找方法既适用于线性表的顺序存储结构,又适用于线性表的链式存储结构。(无序
时间复杂度为O(n)。
在不等概率查找的情况下,ASLss 在
Pn≥Pn-1≥···≥P2≥P1时取极小值
若查找概率无法事先测定,则查找过程采取的改进办法是,在每次查找之后,将刚刚查找到的记录直接移至表尾的位置上。

折半查找(二分查找)

折半查找要求线性表必须才用顺序存储结构,而且表中元素按关键字有序排列。
时间复杂度为O(log2 n)。
算法步骤:

  1. 置查找区间初值,low为1,high为表长。
  2. 当low小于等于high时,循环执行以下操作:
  • mid取值为low和high的中间值;
  • 将给定值key和中间位置记录的关键字进行比较,若相等则查找成功,返回中间位置mid;
  • 若不相等则利用中间位置记录将表分为前后两个字表。如果key比中间位置记录的关键字小,则hi
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值