知识点梳理:数据结构与算法——索引

本文深入探讨了数据结构与算法中的索引技术,包括基本概念、线性索引、静态索引、倒排索引、动态索引如B树和B+树,以及红黑树的插入和删除操作。通过对这些索引结构的分析,揭示了它们在数据检索和存储效率上的优劣。
摘要由CSDN通过智能技术生成

知识点梳理:数据结构与算法——索引

基本概念:

索引:把关键码与它对应的记录位置关联起来的过程;(关键码,指针)对;指针指向主数据库文件(或主文件)中的完整记录

主文件:原始数据记录组成的文件

索引文件:索引数据组成的文件

稠密索引:对每个记录建立一个索引项(特点:主文件不需要按关键码次序排列)

稀疏索引:对一组记录建立一个索引项(特点:要求主文件必须按照关键码次序存放,索引指向这一组记录在磁盘中的起始位置)

线性索引

优点:可对变长数据库记录访问;支持对数据的高效检索(二分)
缺点:线性索引太大,存储在磁盘中,一次检索可能多次访问磁盘,影响检索效率

二级线性索引

二级索引文件读入内存->找到关键码对应的一级索引磁盘块->读入一级索引磁盘块->对该块进行二分检索->读入所需记录

静态索引

索引结构在文件创建时生成;一旦生成就固定下来,在增删记录的过程中索引结构不变;文件再组织时才允许改变索引结构

倒排索引

按属性值建立索引(属性值+关键码/关键码对应的指针地址)
由属性值确定记录的位置,称为倒排索引
带有倒排索引的文件称为倒排文件
优点:高效
缺点:检索词有限(只能用索引文件中的关键词);需要的空间代价往往很高

基于属性的倒排

每个属性值建立一个索引量比较大,且任何一个元素改动,所有索引表都要改变
n个属性可以有 2 n − 1 2^n-1 2n1种索引(多种属性联合建立一个索引)
eg.在这里插入图片描述

基于正文文件的倒排
  • 词索引
    已经排序过的关键词列表:
    eg.
    在这里插入图片描述
  • 全文索引(正文看作一个长的字符串,记录每个字符串开始位置)

动态索引

B树

m阶B树:

  • 上界:每个结点至多有m个子结点(至多m-1个关键码)
  • 下界:根结点至少2子树,其他非叶结点至少 ⌈ m / 2 ⌉ \lceil m/2\rceil m/2子树(至少 ⌈ m / 2 ⌉ \lceil m/2\rceil m/2-1关键码)
  • 树高平衡、叶结点同层、关键码不重复
  • 父结点关键码是子结点分界

值相近的记录在相近磁盘页中,结点关键码至少一定比例是满的(空间利用率,减少检索、更新操作的访外)

插入
  • 找到最底层插入
  • 如果溢出:结点分裂->中间关键码连同新指针插入父结点->继续向上如果溢出则分裂(最后树可能升高一层)

分裂时左半 ⌈ m / 2 ⌉ \lceil m/2\rceil

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值