静态查找表

本文深入探讨了查找表的概念,包括静态查找表及其平均查找长度的计算,并详细讲解了有序表的折半查找和索引顺序表的分块查找算法,提供了提高搜索效率的关键策略。

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

定义

  • 查找表:由同一类型的数据元素构成的集合,数据元素之间存在着完全松散的关系
  • 静态查找表:只对数据进行查询或检索
  • 平均查找长度(Average Search Length):和给定值进行比较的的关键字 个数的期望值
  • ASL=∑i=1nPiCiASL=\sum_{i=1}^n P_iC_iASL=i=1nPiCi
  • PiP_iPi为查找表中第iii个记录的概率,且∑i=1nPi=1\sum_{i=1}^n P_i=1i=1nPi=1
  • CiC_iCi为找到表中关键字时已经比较过的次数
  • 等概率情况下 ASL=∑i=1nPiCi=1/n∑i=1n(n−i+1)ASL=\sum_{i=1}^n P_iC_i=1/n\sum_{i=1}^n(n-i+1)ASL=i=1nPiCi=1/ni=1n(ni+1)

有序表的查找

  • 折半查找:先确定范围,再逐步缩小范围
  • lowlowlowhighhighhigh分别指示待查元素所在范围的下界和上界,指针midmidmid指示中间位置,mid=⌊(low+high)/2⌋mid=⌊(low+high)/2⌋mid=(low+high)/2(向下取整)
  • 查找过程可用二叉树来描述,找到任一结点的过程就是从根结点到该结点的路径,和给定值进行比较的关键词个数恰为该结点的层次数

索引顺序表的查找

  • 索引表按关键词有序,前一块中的最大关键字<后一块中的最小关键字
  • 分块查找:先确定所在块,再在块中顺序查找
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值