算法
文章平均质量分 91
敲键盘的小夜猫
但行好事,莫问前程。
展开
-
算法之美:缓存数据淘汰算法分析及分解实现
在设计一个系统的时候,由于数据库的读取速度远小于内存的读取速度,那么为加快读取速度,需先将一部分数据加入到内存中(该动作称为缓存),但是内存容量又是有限的,当缓存的数据大于内存容量时,就需要删除一部分数据,以加入新的数据。这时候需要设计一种淘汰机制,计算出哪些数据删除,哪些数据保留,常见的淘汰算法有FIFO、LRU、LFU等淘汰算法,接下来我们将一一讲解及实现。原创 2024-04-06 15:47:37 · 765 阅读 · 0 评论 -
数据结构篇:深度剖析跳跃表及与B+树优劣分析
本文旨在探讨跳跃表的特性及其在实际应用场景中的作用,同时对其与B+树进行比较,以帮助更好地理解和运用这两种数据结构。原创 2024-04-05 21:38:06 · 1804 阅读 · 3 评论 -
算法之美:二叉堆原理剖析及堆应用案例讲解及实现
堆(Heap)是计算机科学中一类特殊的数据结构,通常是一个可以被看做一棵完全二叉树的数组对象。完全二叉树只有最下面两层节点的度可以小于2,并且最下层的叶节点集中在靠左连续的边界,只允许最后一层有空缺结点且空缺在右边,完全二叉树需保证最后一个节点之前的节点都齐全;对任一结点,如果其右子树的深度为j,则其左子树的深度必为j或j+1大顶堆是一种完全二叉树,其每个父节点的值都大于或等于其子节点的值,即根节点的值最大,每个节点的两个子节点顺序没做要求,和之前的二叉查找树不一样。原创 2024-03-29 23:50:40 · 1345 阅读 · 0 评论 -
算法之美:B+树原理、应用及Mysql索引底层原理剖析
在上一篇文章我主要讲解了B-Tree,学习要学牢,讲究举一反三,本篇我将继续讲解B+Tree原理及详细剖析Mysql的B+树应用原创 2024-03-28 23:36:16 · 1155 阅读 · 0 评论 -
算法之美:二叉树演进之多叉树及B-Tree树原理
在上篇文章我们了解了平衡二叉树的优势,了解到平衡二叉树能够对不平衡的节点施加旋转,使得树达趋于平衡,以提升查询效率,操作效率很高,与之同时也存在着不少的问题,例如我们在实际使用中会通常会将树加载到内存中,如果节点少的话倒没有什么问题,但节点一多,例如上百万的节点,则高度很大,这时候进行一次IO操作就会出现性能问题。关于此问题我们详细展开,平衡二叉树每个节点只存储一个键值和数据的,每个磁盘块仅仅存储一个键值和数据。原创 2024-03-27 23:52:54 · 895 阅读 · 0 评论 -
算法之美:二叉树演进之AVL平衡二叉树底层原理
在之前的文章中,我们初步了解了二叉查找树(又称二叉排序树),这使我们意识到使用特定策略的查询可以显著提高查找效率。本文将进一步探讨二叉树的演进。由于树相关算法较多且相对复杂,因为我后续将拆解讲述,细嚼慢咽。原创 2024-03-27 00:00:33 · 476 阅读 · 0 评论 -
算法之美:揭秘中间件中的二分查找与树结构应用
平时写业务代码的时候很少写对应的算法,因为很少会在内存中存储大量数据,在需要比较大量数据的查找时,多会依赖的中间件,而中间件底层就应用了很多不同算法,尤其是树结构的查找存储算法,二分查找算法在树里面有大量应用。原创 2024-03-24 00:03:04 · 941 阅读 · 2 评论