关于数据结构的整理

一.B+RTEE:

B+树介绍:

B+ 树是一种多路平衡查找树,通常用于数据库索引结构,在B+树中,所有的关键字都被存储在叶子节点上,并按照顺序连接成一个有序链表。B+树具有很好的平衡性和高效性,适用于范围查询、顺序访问以及范围扫描等操作。

B+树就像是一棵大树,帮助数据库系统高效地管理数据。这棵树有几个特点:

多路平衡性: B+树很平衡,每个节点都可以有多个分支,保持了树的稳定和高效。

关键字在叶子节点上: 所有的关键字数据都存在树的最底层,这些底层节点像是一条有序的链表,方便快速查找和按顺序访问数据

非叶子节点用于索引,叶子节点存数据: 树的上层节点仅用来做索引,不存储实际数据,让树结构更简单。

支持范围查询和顺序访问: 因为底层叶子节点有序,所以B+树适合查找一定范围内的数据或按顺序遍历数据。

B+树的构成:

根节点(树的顶部,包含若干关键字和指向子节点的指针)非叶子节点(除了底层叶子节点外的其他节点,用来做索引和分割数据范围。)叶子节点(存储实际的数据记录,每个叶子节点像一条链表,存储关键字数据)

B+树的操作:

插入:按照特定规则向下找到合适位置,插入数据并保持树的平衡。删除:找到要删除的数据,进行节点合并或移动,保持树的平衡。查找:从根节点开始,根据关键字大小逐层查找,直到找到叶子节点,然后在叶子节点中进行查找。

B+树的应用场景:

数据库系统中用于加速数据表的查询操作,特别是范围查询和顺序访问。文件系统中用于管理文件和目录的索引,实现快速的文件查找和访问。 

总的来说,B+树特别适合用于大规模数据的索引,显著提升数据库查询性能和数据管理效率。

二.HASH:

哈希索引使用哈希表数据结构,将索引键转换为哈希值,然后映射存储的位置,在等值查询时效率高,不支持范围查询和排序操作。 哈希表(Hash Table)是一种基于哈希函数实现的数据结构,用于快速存储和检索数据。哈希表通过将关键字映射到哈希桶(数组)的索引位置来存储数据,具有快速的查询速度和良好的性能特性。

哈希表就像一个巨大的数组,其中每个位置都有一个盒子,根据特定的规则将数据放入这些盒子中。这个规则叫做哈希函数,它能够把关键字(名字、数字或其他数据)转换成一个数字,称之为哈希值,这个哈希值决定了数据应该放在哪个盒子里。

当需要查找数据时,再次使用哈希函数计算关键字的哈希值,然后立即知道数据在哪个盒子里。因为哈希表是根据哈希值来组织数据的,所以查找速度非常快,平均情况下只需常数时间。这种快速查找的特性使得哈希表非常适合存储大量数据并快速定位其中某个数据的场景。

然而,哈希表也有局限性。它主要适用于等值查询,也就是通过唯一的关键字查找数据。由于数据存储位置是根据哈希值计算得出的,哈希表并不适合范围查询或排序操作,因为这些操作无法利用哈希值的特性来快速定位数据。

总的来说,哈希表是一种高效的数据结构,特别适合快速查找具有唯一标识的数据,不适合按范围或顺序访问数据的场景

相关推荐

  1. 关于数据结构整理

    2024-05-16 07:36:16       12 阅读
  2. 数据结构(二)关于空间使用

    2024-05-16 07:36:16       8 阅读
  3. 关于鸿蒙笔记整理

    2024-05-16 07:36:16       35 阅读
  4. 关于数据结构基本概念

    2024-05-16 07:36:16       11 阅读
  5. 【算法】【数据结构】算法与数据结构关系

    2024-05-16 07:36:16       33 阅读
  6. 数据库关系数据结构

    2024-05-16 07:36:16       13 阅读
  7. 数据结构与程序关系

    2024-05-16 07:36:16       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-16 07:36:16       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-16 07:36:16       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-16 07:36:16       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-16 07:36:16       20 阅读

热门阅读

  1. android之instrumentation的简单记录

    2024-05-16 07:36:16       11 阅读
  2. OpenAI 推出 GPT-4o,慢其实是快

    2024-05-16 07:36:16       12 阅读
  3. 如何使用Python进行网页爬取

    2024-05-16 07:36:16       16 阅读
  4. 自强不息(好习惯与自律相互促进)

    2024-05-16 07:36:16       8 阅读
  5. Spring MVC(七) 异常处理

    2024-05-16 07:36:16       12 阅读
  6. Oracle数据块之数据行中的SCN

    2024-05-16 07:36:16       11 阅读
  7. 【专用】C# ArrayList的用法总结

    2024-05-16 07:36:16       10 阅读
  8. 【FFmpeg】编码链路上主要函数的简单分析

    2024-05-16 07:36:16       15 阅读
  9. Linux文件处理知识点

    2024-05-16 07:36:16       11 阅读
  10. 24.HashMap的扩容机制

    2024-05-16 07:36:16       13 阅读