2020-09-10

基于线性表的查找方法小概括

  • 引言
    自己在做题的过程中,遇到很多的查找方法,但是并不是很清楚具体的那个相关情况,便对相关的一些查找方法做了个小概括,方便后面学习和强化,如果你也正在查找方法的学习路上,那我们可以一起来了解了解!(本次总结的内容来源于数据结构 c语言版第二版 严蔚敏)
    一、基于线性表的查找方法
    顺序查找的查找过程:从表的一端开始,依次将记录的关键字和给定值进行比较,若某个记录的关键字和给定值相等的,则查找成功;反之,若扫描整个表后,仍未找到关键字和给定值相等的记录,则查找失败。
    折半查找的查找过程:从表的中间记录开始,如果给定值和中间记录的关键字相等,则查找成功;如果给定值大于或者小于中间记录的关键字,则在表中大于或小于中间记录的那一半中查找,这样重复操作,直到查找成功,或者在某一步中查找区间为空,则代表查找失败。
    分块查找:(除本身外还要建立一个索引表)
    1、索引表建立步骤
    a.一般情况下,把长度为n的表均匀地分成b块(子表),每块中含有s个记录,即b=[n/s]
    b.对每一块(子表)建立一个索引项。索引项包括两项内容:关键字项(其值为该子表内的最大关键字)和指针项(指示该子表的第一个记录在表中的位置)。
    索引表按关键字有序,则表或者或许或者分块有序。分块有序的解释在下面。
    2、分块查找过程(分两步)
    a.先确定待查记录所在的块
    b.然后在块中顺序查找

表和索引表的对应图:
1-18是下标,不是表里面的关键字!!!从这个图中可以看出,将数据分成三个子表
1-18是下标,不是表里面的关键字哈!从这个图中可以看出,将表中18个记录分成三个子表,然后每个子表中的最大关键字和其实地址被放在索引表中。分块有序:可以看到第二个子表(下标从7-12)的所有记录的关键字均大于第一个子表(下标从1-6)中最大关键字,然后后面的子表也依次类推。分块有序的大致含义如此。

然后下面是表的总结,文章还待完善,欢迎各位大佬的指点。ohhhhhhhhhhhh!
线性表的查找方法
下面是一些课本的课后习题,搬运过来加深理解,如果有这本书可以去做一下,我觉得挺全的。
1.对n个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度()
A.(n-1)/2 B.n/2 C.(n+1)/2 D.n
2.适用于折半查找的表的储存方式,以及元素排列要求为()
A.链接方式存储,元素无序
B.链接方式存储,元素有序
C.顺序方式存储,元素无序
D.顺序方式存储,元素有序
3.如果要求一个线性表既能较快的查找,又能适应动态变化的要求,最好采用()查找法
A.顺序查找
B.折半查找
C.分块查找
D.哈希查找

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值