• 数据--第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)      将网站页面链接加入链接线性表中。

    小结:

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

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

  • 相关阅读:
    MFC Picture Ctrl 无失真自适应显示图片
    肖申克的救赎
    iOS开发常用工具
    代码管理工具 --- git的学习笔记四《重新整理git(1)》
    压缩与解压缩
    读书笔记——金融学-投资哪些事(职业投资人),读报
    读书笔记——金融学-《国富论》
    文件下载 NSURLConnection——文件下载与上传
    视频播放一
    XML解析
  • 原文地址:https://www.cnblogs.com/free-1122/p/11336102.html
Copyright © 2020-2023  润新知