算法图表总结:查找、排序与递归(含 Mermaid 图示)

算法图表总结:查找、排序与递归(含 Mermaid 图示)

分类标签:算法、数据结构、Mermaid、技术图表

关键词: 算法可视化、Mermaid 图表、数据结构、二分查找、快速排序、递归树

摘要: 本文通过 Mermaid 图表直观展示常见算法流程,涵盖二分查找、分块查找、哈希冲突处理,冒泡排序、快速排序、归并排序,以及斐波那契递归树和爬楼梯问题的递归分解,帮助理解算法逻辑与执行过程。

一、查找算法图表

1. 二分查找流程示意图

流程说明:

在有序数组[7,23,79,81,103,127,131,147]中查找目标值 79,通过不断缩小区间范围(调整minmax指针),最终在索引 2 处找到目标。
arr[mid] > 79 arr[mid] < 79 初始数组:7,23,79,81,103,127,131,147 min=0, max=7, mid=3 比较arr[3]=81与目标79 max=2 新范围:min=0, max=2, mid=1 比较arr[1]=23与目标79 min=2 新范围:min=2, max=2, mid=2 找到目标79,索引2

2. 分块查找数据分块图

特点:

块间有序(后一块最大值大于前一块最大值),块内无序。例如:

  • 块 1 最大值 21 < 块 2 最大值 45 < 块 3 最大值 73。

块间有序(块内无序) 块最大值=21 块最大值=45 块2:32,23,37,26,45,34 块1:16,5,9,12,21,18 块3:50,48,61,52,73,66

3. 哈希查找冲突处理(链地址法)

冲突处理:

当不同键映射到相同索引时,通过链表存储冲突元素。例如:

  • 索引 3 存储user_101user_401(链表结构)。

索引0 索引3 索引7 哈希表 Null user_101数据 user_401数据 user_205数据

二、排序算法图表

1. 冒泡排序过程(第一轮)

执行逻辑:

从左到右依次比较相邻元素,大的元素右移。第一轮完成后,最大元素 5 "冒泡" 到末尾。
3 2 5 1 4 比较3>2,交换 当前数组:2,3,5,1,4 比较3<5,不交换 比较5>1,交换 当前数组:2,3,1,5,4 比较5>4,交换 最终数组:2,3,1,4,5 3 2 5 1 4

2. 快速排序分治示意图

分治思想:

  • 选择基准数(如 6),将数组分为左(小于基准)、中(基准)、右(大于基准)三部分。
  • 递归处理左右子数组。

原始数组:6,1,2,7,9,3,4,5,10,8 选择基准数6 分区操作 左分区:1,2,3,4,5 基准数6 右分区:7,9,10,8 递归快速排序 递归快速排序

3. 归并排序合并流程

合并逻辑:

将两个有序子数组合并为一个有序数组,通过临时数组辅助实现。
左子数组:2,5,7 合并过程 右子数组:1,3,8 临时数组:1,2,3,5,7,8 复制回原数组

三、递归算法图表

1. 斐波那契递归树(n=5)

递归关系:
f(n) = f(n-1) + f(n-2),树中每个节点表示一次递归调用,存在大量重复计算(如f(3)被调用两次)。
f(5) f(4) f(3) f(3) f(2) f(2) f(1) f(2) f(1) f(1) f(0)

2. 爬楼梯递归分解图(n=5)

问题建模:

n阶楼梯可分解为:

  • 先爬n-1阶,再走 1 步;
  • 或先爬n-2阶,再走 2 步。

爬5阶 爬4阶 + 1步 爬3阶 + 2步 爬3阶 + 1步 爬2阶 + 2步 爬2阶 + 1步 爬1阶 + 2步

总结:

通过 Mermaid 图表可直观呈现算法的执行流程与逻辑结构,尤其适合递归、分治等复杂算法的理解。建议在学习算法时结合图示分析,提升对时间复杂度、空间复杂度及数据流动的认知。CSDN 支持直接渲染 Mermaid 代码,读者可通过插件或在线工具查看动态效果。

相关推荐
计算机安禾1 分钟前
【数据结构与算法】第37篇:图论(一):图的存储结构(邻接矩阵与邻接表)
数据结构·算法·链表·排序算法·深度优先·图论·visual studio code
sparEE4 分钟前
基础排序算法:冒泡、选择、插入、希尔
数据结构·算法·排序算法
ths51211 分钟前
测试开发python中正则表达式使用总结(二)
开发语言·python·算法
不爱吃炸鸡柳14 分钟前
5道经典贪心算法题详解:从入门到进阶
开发语言·数据结构·c++·算法·贪心算法
枫叶林FYL21 分钟前
【自然语言处理 NLP】8.3 长文本推理评估与针在大海堆任务
人工智能·算法
智者知已应修善业23 分钟前
【51单片机1,左边4个LED灯先闪烁2次后,右边4个LED灯再闪烁2次:2,接着所用灯一起闪烁3次,接着重复步骤1,如此循环。】2023-5-19
c++·经验分享·笔记·算法·51单片机
米啦啦.23 分钟前
红黑树,,
数据结构·红黑树
xiaoye-duck29 分钟前
《算法题讲解指南:优选算法-队列+宽搜》--70.N叉树的层序遍历,71.二叉树的锯齿形层序遍历,72.二叉树的最大宽度,73.在每个树行中找最大值
数据结构·c++·算法·队列
汀、人工智能31 分钟前
[特殊字符] 第98课:数据流中位数
数据结构·算法·数据库架构··数据流·数据流中位数