数据结构与算法
文章平均质量分 78
吃烤鱼Rocky
小蒟蒻的学习记录
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
B树与B+树概述
摘要 B树和B+树是用于大规模数据存储的多路平衡查找树结构。B树通过减少树高度提升磁盘查询效率,其特点包括节点多关键字、特定阶数要求及平衡性。B树操作包含复杂的分裂与合并机制,插入采用主动拆分避免级联效应,删除则需处理节点下溢问题。B+树在B树基础上改进,非叶节点仅存键值,数据全存于叶节点并用链表连接,提升范围查询效率,成为数据库索引的主流结构。两者通过不同设计平衡了存储效率与查询性能,适用于磁盘存储的大数据场景。原创 2025-11-05 16:52:24 · 529 阅读 · 0 评论 -
红黑树概述及插入删除逻辑
红黑树是一种自平衡二叉搜索树,通过颜色约束和旋转操作保持平衡。其核心性质包括节点非黑即红、根节点黑色、红色节点子节点必须黑色、各路径黑高相同等。插入时先着红,再根据叔叔节点颜色调整;删除时处理双黑节点情况,通过旋转和着色维持平衡。红黑树广泛应用于C++ STL的map/set等容器,相较于AVL树降低了旋转频率,在动态操作中性能更优。其平衡策略结合了颜色管理和旋转操作,实现了高效的动态数据管理。原创 2025-11-04 22:02:10 · 543 阅读 · 0 评论 -
二叉平衡树的插入与删除
本文介绍了二叉平衡树的概念及其实现方式。主要内容包括:1)平衡二叉树的引入原因,即在二叉搜索树基础上增加高度约束,通过平衡因子(左右子树高度差绝对值≤1)维持平衡;2)失衡的四种形式(LL, RR, LR, RL)及其调整方法,通过旋转操作重新平衡;3)具体实现方案,包括节点结构、旋转操作(左旋/右旋)的算法实现,以及插入和删除操作的处理流程。插入时需要递归查找位置并在回溯过程中检查平衡因子,删除时需考虑节点度数情况。该数据结构通过自动平衡机制保证查找效率始终维持在O(log n)。原创 2025-10-30 22:43:45 · 392 阅读 · 0 评论 -
关于复杂度分析的讨论
本文介绍了算法评估的两个关键指标:时间复杂度和空间复杂度。时间复杂度衡量算法运行时间,按增长率从优到劣排序为O(1)、O(log₂n)、O(n)等。计算时需找出基本语句(通常是内层循环),统计执行次数的数量级并简化。空间复杂度衡量内存需求,常见类型包括O(1)、O(log₂n)和O(n)。文章还提供了实用的分析方法:对单层循环找终止条件,对嵌套循环计算内外层执行次数的乘积。通过例题展示了如何计算循环执行次数,并附有思考题解析。原创 2025-10-29 20:14:24 · 310 阅读 · 0 评论 -
二叉搜索树的插入和删除
二叉搜索树(BST)是一种基础数据结构,其特点是左子节点值小于父节点,右子节点值大于父节点。BST的中序遍历结果是有序序列。文章介绍了BST的插入和删除操作:插入时递归比较节点值确定位置;删除时分三种情况处理:度为0直接删除,度为1用子节点替换,度为2则通过前驱/后继节点转换后删除。文中提供了C++代码实现,包括创建节点、插入、查找前驱节点和删除等核心操作。BST虽然工程应用较少,但作为理论学习基础具有重要意义。原创 2025-10-30 16:48:27 · 275 阅读 · 0 评论 -
二叉树的线索化和实现
摘要:线索二叉树通过利用空指针域存储节点前驱和后继信息,优化了中序遍历效率。线索化过程采用递归方法,在遍历时设置节点的lTag和rTag标志位,将左/右指针指向中序前驱/后继节点。线索化后的遍历无需递归或栈支持,直接通过标志位快速定位后继节点,极大地提升了遍历速度。该结构在保持二叉树原有特性的同时,有效利用空指针空间,实现了高效的中序遍历操作。原创 2025-10-28 22:15:09 · 800 阅读 · 0 评论 -
串和KMP
本文介绍了两种字符串匹配算法:暴力匹配和KMP算法。暴力匹配通过逐个比较字符实现,时间复杂度为O(mn)。KMP算法利用next数组优化,只回溯模式串,时间复杂度更优。next数组记录模式串失配时应回退的位置,通过动态维护前后缀匹配长度j来高效计算。代码实现展示了如何构建next数组并利用其进行快速匹配。KMP的核心思想是复用已计算的前后缀信息,避免重复比较,实现了线性时间的模式匹配。原创 2025-10-28 16:13:46 · 705 阅读 · 0 评论
分享