数据--第49课 - 线性索引查找

第49课 - 线性索引查找

1. 索引的概念

索引是把一个关键字与它对应的记录相关联的过程。索引由若干个索引项构成,每个索引项包括关键字和其对应记录的位置,索引技术是组织大型数据库以及磁盘文件的重要技术。

线性索引:将索引项组织成线性结构。

非线性索引:将索引项组织成树形结构或图形结构。

 

2. 线性索引

(1)稠密索引:将数据集中的每个记录都做成一个索引项后存入线性表中。

 

(2)稠密索引的基本思想

① 将数据记录的(关键码、地址)组织成索引表,并排序。

② 当需要通过某个关键字key的值进行查找时可以利用二分查找或者插值查找等算法对(关键码,地址)表进行查找。

③ 通过查找结果中的地址可以直接得到数据记录。

(3)稠密索引的特点

不需要对数据记录本身进行组织或者排序。

每一条数据记录对应索引表中的一个索引项。

(4)稠密索引的缺陷

当索引表不能完全放置于内存中时,查找效率将大打折扣。

(5)分块索引

分块索引的思想同样来源于生活中。

将数据集中的记录分成若干块。

块内无序:每一块中的记录可以是无序的.

块间有序:第n块中所有记录的关键字必须大于第n-1块中任一记录的关键字。

 

(6)分块索引的基本思想

以(最大关键码,块长,块指针)的方式组织索引表,并排序。

利用二分查找或者插值查找等在索引表中查找关键字所在块。

根据块首指针找到对应的块,并在块中查找数据记录。

(7)分块索引的特点

① 不需要为每个数据记录分配一个索引项。

② 块中的数据记录可以是杂乱的,只要能进行顺序查找即可。

③ 块间的数据记录必须是有序的,第n块中所有记录的关键字必须大于第n-1块中任一记录的关键字。

 

 

3. 倒排索引

倒排索引将非关键码组织成(非关键码,地址)索引表。

倒排索引的索引表结构类似稠密索引。

倒排索引与稠密索引的区别在于:倒排索引的每个索引项可以对应多个记录,倒排索引的索引项不会缩着数据记录的增加有明显的增加。

 

示例:

英文单词(次关键码)

编号(地址)

and

0,1,4

android

0,2,5

boy

1,4,7

book

0,1,4

but

5,6

few

3,5,7

friend

0,7

good

1,2,3,4

should

5,7

 

倒排索引的应用—简单搜索引擎

(1)      网站管理员提交他们的网站链接。

(2)      以英文单词作为次关键码遍历网站中的页面。

(3)      将遍历产生的索引项加入索引表。

(4)      将索引表中的索引项按照次关键字进行排序。

(5)      将网站页面链接加入链接线性表中。

 

 

小结:

线性索引是线性表和排序算法以及查找算法的一个组合应用。首先将索引项组织到线性表中,其次对索引表进行排序,最后对排序好的索引表进行查找得到数据记录。

稠密索引,分块索引和倒排索引是最基础三种索,有着各自的应用场合。

 

posted @ 2019-08-11 18:52  free-锻炼身体  阅读(154)  评论(0编辑  收藏  举报