数据结构——三种线性索引&两种表【稠密索引-分块索引-倒排索引-多重表-倒排表】

目录:

一:线性索引【索引表】

二:稠密索引

1.定义

2.图形化解释

三:分块索引

1.定义

 如何减少索引项的个数呢?

2.图形化解释

3.查找步骤

  4.分块有序

(1)块内无序

(2)块间有序

5.分块索引

分块索引结构数据项

四:倒排索引

五:多重表

六:倒排表

优缺点

优点:

缺点:


一:线性索引【索引表

就是将索引项集合组织为线性结构,也称为 索引表

 

二:稠密索引

1.定义

指在线性索引中,将数据集中的每个记录对应一个索引项

2.图形化解释

如下图所示:

稠密索引要应对的可能是成千上万的数据

因此,对于稠密索引这个索引表来说,索引项一定是按照关键码有序的排列

 

三:分块索引

1.定义

对数据集进行有序分块

并将每块对应一个索引项

 

其中,分块有序 指的是把数据集的记录分成若干块

并且这些块需要满足 块内无序 和 块间有序 这两个条件

 

注意理解:

稠密索引是因为索引项数据集记录个数相同,所以空间代价很大

 

 如何减少索引项的个数呢?

 我们可以对数据集进行分块

使其分块有序

然后再对每一块建立一个索引项(类似于图书馆的分块)

2.图形化解释

分块索引如下图所示:

3.查找步骤

在分块索引表中查找,就是分两步进行
A:在分块索引表中查找要查关键字所在的块

由于分块索引表示块间有序的

因此很容易利用二分插值等算法得到结果


B:找到关键字所在的块后

根据块首指针找到对应的块

并在块中顺序查找关键码

因为块中可以是无序的,因此只能顺序查找

  4.分块有序

是把数据集的记录分成了若干块,并且这些块需要满足两个条件:

(1)块内无序

  每一块内的记录不要求有序

(2)块间有序

  比如要求第二块记录的关键字均要大于第一块中所有记录的关键字,第三块要大于第二块。

  只有块间有序才有可能在查找时带来效率

5.分块索引

 对于分块有序数据集

每块对应一个索引项,这种索引方法叫做分块索引

 

分块索引结构数据项

  分块索引的索引项结构分为三个数据项

A: 最大关键码--存储每一块中的最大关键字

B: 块长--存储每一块中记录的个数以便于循环时使用

C: 块首地址--用于指向块首数据元素指针

便于开始对这一块中记录进行遍历

 

四:倒排索引

指的是索引项具备 次关键码记录号表 两个字段

记录号表存储具有相同次关键字的所有记录的记录号(可以是指向记录的指针或者是该记录的主关键字

则称这样的索引方法为 倒排索引(inverted index)

 

之所以成为倒排索引,是因为其是有属性值来确定记录位置

不是记录来确定属性值(即通过内容关键字来查找文章,而不是由文章来查找其内容关键字)

 

五:多重表

不仅要按主关键码进行查找

还要次关键码按给定码值或给定取值范围进行查找

则需在建立主索引的同时,也建立次关键码索引

 

六:倒排表

索引项包括次关键码的值和具有该值的各记录的地址

或包括次关键码的一个取值范围和取值在该范围内的所有记录的地址

优缺点

优点:

(1)既适合主关键码查找,也适合次关键码的查找

(2)查找速度较快

(3)没有要求主文件中次关键码相同的记录建立链接

        因而不需要主文件进行修改

        故其使用和维护简单方便

缺点:

(1)由于记录号表不定长的,故处理起来不太方便

(2)由于倒排表的记录号表记录号要求有序

       这对在主文件中进行插入和删除记录操作带来相应处理上的工作量

 

参考地址:

https://blog.csdn.net/qq_22238021/article/details/78261630?utm_source=app

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刘鑫磊up

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

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

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

打赏作者

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

抵扣说明:

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

余额充值