老罗带你轻松搞定针对索引存储结构的分块查询算法
来源:互联网 发布:手机相册浏览软件 编辑:程序博客网 时间:2024/06/06 04:31
先上个图,比较清晰
分析:数据表是什么呢,比如我有个数组是被查询的集合,那么这个数组就是数据表,那么什么是索引表其实就是保存了数组里面的某些元素和索引值。
继续看实例:
如果我们针对数据表从8 —-到87这些元素中找具体某个元素的话,由于是没有排序的,那么肯定是不能进行二分查找,如果是顺序查询数据量又太多,效率太差,因此我们想个办法,能不能让这个数组中的每段数据是无序的,但是每段数据的最都小于下段数据的每个元素。
这种数据要么已经是直接给我。要么直接用算法去整理出来。
有了这种具备分块查询算法的数据表的前提之下,开始真正的索引表的设计咯。
我们根据数据表,提前把第一块数据的首地址写在索引项目的第二个数据变量当中,第一块最大的元素存在对应的元素变量中,其他索引项目依次填写就可以。
准备工作完毕后,假如我们想得到80这个元素,我们先根据二分查找算法得到80这个元素在索引表中的什么位置,比如我们找到66和85之间,那么我们肯定知道80这个元素是在85这个元素对应的段里面,那么我们在得到这个元素对应的索引值就是15。 通过这个15索引我们就得到到了71这个元素值,这个时候我在用顺序查询算法也就是逐一比较元素在当前段里找到80那个元素,返回地址18。
查询完毕,我们发现这个算法就是是在顺序查找和二分查询之间的。 多开了内存来保存索引表。
效率还不错吧。具体应用场景其实我们的图书馆就是分块存储的结构的。我们去找具体什么书,我们是先去电脑查询我们的书比如是自然科学类型,那么我们就跑到自然科学牌下的一排找,这个时候我们是不是一本一本对比找啊 ,对的 。 好了 ok。
阅读全文
0 0
- 老罗带你轻松搞定针对索引存储结构的分块查询算法
- 针对数组存储结构的堆排序算法
- 轻松搞定你的RedHat安全加固
- 轻松让你彻底搞定c++版 线索二叉树的线索化算法
- 轻松搞定KMP算法
- 彻底轻松搞定顺序存储结构元素的二分查找的时间复杂度优势以及如何算时间复杂度
- OVER 轻松搞定排名查询
- mysql中limit的查询优化,千万级也能轻松搞定
- 六招轻松搞定你的CentOS系统安全加固
- 别让你的缓存形同虚设,轻松搞定缓存击穿
- 针对FileNet工作队列的索引查询说明
- 结构体大小,轻松搞定笔试题
- sqlserver 索引的结构及其存储
- InnoDB引擎的索引和存储结构
- InnoDB引擎的索引和存储结构
- 查找算法-稠密索引、分块索引、倒排索引
- 数据存储-索引结构
- 轻松搞定你的IPython + Notebook 基于云的科学计算环境(含详细步骤)
- PHP-获取脚本执行时间
- 关于程序员之间丧心病狂的鄙视链——编程语言篇
- SVM-支持向量机算法概述
- 使用shiro进行登录和退出
- Nginx反向代理尝试
- 老罗带你轻松搞定针对索引存储结构的分块查询算法
- struts2和spring的简单整合
- 同一台电脑 多ssh配置
- js 快速反转字符串
- html标题(heading)
- 关于 TestFlight 新提交的版本没有出现在 测试用户列表中的问题 iOS Swift
- C# File.Copy介绍
- ==与equals()的区别(1)
- qt 启用外部应用程序