数据--第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) 将网站页面链接加入链接线性表中。
小结:
线性索引是线性表和排序算法以及查找算法的一个组合应用。首先将索引项组织到线性表中,其次对索引表进行排序,最后对排序好的索引表进行查找得到数据记录。
稠密索引,分块索引和倒排索引是最基础三种索,有着各自的应用场合。
转载于:https://www.cnblogs.com/free-1122/p/11336102.html
数据--第49课 - 线性索引查找相关推荐
- 第5课 - 线性表的本质
第5课 - 线性表的本质 数据结构是为了解决生活中的实际问题而存在的,那生活中与线性表相对应的例子有什么呢? 幼儿园中就有一个例子,在老师安排小朋友活动时,会将小朋友组织成下面的站队形式,这个就是线性 ...
- 视频教程-大数据分析师实战课-大数据
大数据分析师实战课 任老师,Cloudera管理/开发/分析认证讲师,华为高级特聘讲师,新华三大学高级特聘讲师,中国大数据技术与应用联盟高级讲师,全国高校大数据联盟特聘讲师,中国移动高级讲师,前IBM ...
- 第49课 大大大(纯小数变整数) 《小学生C++趣味编程》
/*第49课 大大大(纯小数变整数)--学会编程,未来你将拥有更多的机会与可能--试编一程序,输入一个纯小数,把它变成整数后输出. (设纯小数的小数位数不超过9)0.1 1 0.125 125 */ ...
- 当且仅当函数依赖a→b在r上成立_数据库第06章关系数据理习题课.ppt
您所在位置:网站首页 > 海量文档  > 计算机 > 数据结构与算法 数据库第06章关系数据理习题课.ppt36页 本 ...
- python逐笔输入数据_知到智慧树Python数据分析与数据可视化结课测验
知到智慧树Python数据分析与数据可视化结课测验答案 更多相关问题 已知三角形三个顶点的坐标是A(-1,2,3),B(1,1,1),C(0,0,5),试证三角形ABC是直角三角形,并求角B-- Wh ...
- 大数据入门第一课 Hadoop基础知识与电商网站日志数据分析
大数据入门第一课 Hadoop基础知识与电商网站日志数据分析 本课程从Hadoop核心技术入手,以电商项目为依托,带领你从0基础开始上手,逐步掌握大数据核心技术(如:HDFS.YARN.MapRedu ...
- 题目:以下数据结构中不属于线性数据结构的是()
题目: 以下数据结构中不属于线性数据结构的是(C) A:线性表 B:队列 C:二叉树 D:栈 解释: 线性结构定义: 如果一个非空的数据结构满足下列两个条件:1.有且只有一个根节点:2.每一个节点最多 ...
- 数据的逻辑结构(线性结构、非线性结构;集合结构、树状结构、网状结构),数据的存储结构(顺序结构、链式结构、索引结构、散列结构)
数据的逻辑结构 数据的逻辑结构指数据元素之间的逻辑关系(和实现无关). 分类1:线性结构和非线性结构 线性结构:有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继. ...
- 大数据学习第一课:虚拟机安装配置
本章主要内容 VirtualBox下安装CentOS7 Minimal版本 Minimal版本Centos7静态IP网络设置 ssh免密登录设置 我们现在身处数据时代,大数据和人工智能已经逐渐渗透到我 ...
- 大数据算法 chap-2 亚线性算法
亚线性算法 2.1 亚线性算法的定义 2.2 水库抽样-空间亚线性算法 2.3 平面图直径-时间亚线性计算算法 2.4 全0数组判定-时间亚线性判定算法 2.1 亚线性算法的定义 亚线性:比线性消耗更 ...
最新文章
- 报名 | 清华大学大数据能力提升项目开始报名啦!(2021秋)
- JSON简介以及用法汇总
- java判断总共天数_Java判断两个日期相差天数的方法
- http-关于application/x-www-form-urlencoded等字符编码的解释说明
- 三心二意,助你好运?
- 专业学习频道,欢迎关注数锐学堂
- PythonPyqt5项目开发完成后如何使用pyinstaller打包——以Pycharm编辑器为例(目前为止最正确的版本,成功打包日期为2020.11.26)
- 【数据结构笔记24】单源最短路(迪克斯拉Dijkstra算法),多源最短路(弗洛伊德Floyd算法)
- MDK5 (Keil5)注册机破解
- 禁忌搜索算法(Tabu Search)
- 概率论 方差公式_概率论基本问题
- 中级网络工程师是什么?主要是考什么,有什么用?
- ARM GCC浮点相关总结
- 【安全攻防系列 入侵排查 篇】 Windows和 Linux入侵排查 的思路及其工具篇
- 3D打印肝模型抢救生命
- biti_rainy's blog
- GD32系列总结 - systick介绍及使用
- 高考状元杀死同学 自称跟马加爵的经历很像
- 爬虫爬取斗鱼小姐姐直播间的封面
- 社区交友源码/支持聊天私聊-礼物系统-直播系统-缘分匹配+搭建教程
热门文章
- centos7 mysql添加密码_centos-在Centos7上更改mysql根密码
- 计算机应用超期,电脑程序数字签名过期怎么办
- java web实训项目_通知 | Java、web大前端将在南京开课啦!
- python爬取数据库数据类型_python中从搭建Mysql平台到爬取数据一站式全部完成
- html中src中的url,HTML 中的 href\src\url
- Scala学习02——Scala类和对象
- mysql数据库导入视图表失败_一个mysqldump导出失败的案例分析
- java---数组常用的方法:
- html调用rpst 源码_parseHTML 函数源码解析(四) AST 基本形成
- java 字符串排序_Java控制台输入字符串及字符串比较