算法图表总结:查找、排序与递归(含 Mermaid 图示)
分类标签:算法、数据结构、Mermaid、技术图表
关键词: 算法可视化、Mermaid 图表、数据结构、二分查找、快速排序、递归树
摘要: 本文通过 Mermaid 图表直观展示常见算法流程,涵盖二分查找、分块查找、哈希冲突处理,冒泡排序、快速排序、归并排序,以及斐波那契递归树和爬楼梯问题的递归分解,帮助理解算法逻辑与执行过程。
一、查找算法图表
1. 二分查找流程示意图
流程说明:
在有序数组[7,23,79,81,103,127,131,147]
中查找目标值 79,通过不断缩小区间范围(调整min
和max
指针),最终在索引 2 处找到目标。
2. 分块查找数据分块图
特点:
块间有序(后一块最大值大于前一块最大值),块内无序。例如:
- 块 1 最大值 21 < 块 2 最大值 45 < 块 3 最大值 73。
3. 哈希查找冲突处理(链地址法)
冲突处理:
当不同键映射到相同索引时,通过链表存储冲突元素。例如:
- 索引 3 存储
user_101
和user_401
(链表结构)。
二、排序算法图表
1. 冒泡排序过程(第一轮)
执行逻辑:
从左到右依次比较相邻元素,大的元素右移。第一轮完成后,最大元素 5 “冒泡” 到末尾。
2. 快速排序分治示意图
分治思想:
- 选择基准数(如 6),将数组分为左(小于基准)、中(基准)、右(大于基准)三部分。
- 递归处理左右子数组。
3. 归并排序合并流程
合并逻辑:
将两个有序子数组合并为一个有序数组,通过临时数组辅助实现。
三、递归算法图表
1. 斐波那契递归树(n=5)
递归关系:
f(n) = f(n-1) + f(n-2)
,树中每个节点表示一次递归调用,存在大量重复计算(如f(3)
被调用两次)。
2. 爬楼梯递归分解图(n=5)
问题建模:
爬n
阶楼梯可分解为:
- 先爬
n-1
阶,再走 1 步; - 或先爬
n-2
阶,再走 2 步。
总结:
通过 Mermaid 图表可直观呈现算法的执行流程与逻辑结构,尤其适合递归、分治等复杂算法的理解。建议在学习算法时结合图示分析,提升对时间复杂度、空间复杂度及数据流动的认知。CSDN 支持直接渲染 Mermaid 代码,读者可通过插件或在线工具查看动态效果。