随笔分类 - 数据结构与算法
摘要:LRU缓存替换策略 缓存是一种非常常见的设计,通过将数据缓存到访问速度更快的存储设备中,来提高数据的访问速度,如内存、CPU缓存、硬盘缓存等。 但与缓存的高速相对的是,缓存的成本较高,因此容量往往是有限的,当缓存满了之后,就需要一种策略来决定将哪些数据移除出缓存,以腾出空间来存储新的数据。 这样的策
阅读全文
摘要:目录前言从叶子节点删除数据从非叶子节点删除数据提前扩充只有 t-1 的 Item 的节点:维持 B树 平衡的核心算法从左兄弟节点借用 Item从右兄弟节点借用 Item与左兄弟节点或者右兄弟节点合并最值的删除代码实现Benchmarks:与 优先队列 PriorityQueue 的比较入队性能出队性
阅读全文
摘要:目录前言查询数据算法说明代码实现查询最值算法说明代码实现B树的遍历算法说明代码实现Benchmarks总结参考资料 前言 本文为系列文章 B树的定义及数据的插入 数据的读取及遍历 数据的删除 前一篇文章为大家介绍了 B树 的基本概念及其插入算法。本文将基于前一篇的内容,为大家介绍插入到 B树 中的数
阅读全文
摘要:目录前言索引原理局部性(Locality)数据的局部性内存存储和磁盘存储磁盘存储适合的索引结构B树简介定义B树中数据的有序性用C#定义数据结构插入数据的过程分裂:新节点诞生的唯一方式根节点的分裂非根节点的分裂分裂导致树的高度增加提前分裂插入算法实现Key 已存在时的处理策略插入算法总结参考资料 前言
阅读全文