当前位置: 首页 > news >正文

算法图表总结:查找、排序与递归(含 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 代码,读者可通过插件或在线工具查看动态效果。

相关文章:

  • ORACLE 11.2.0.4 数据库磁盘空间爆满导致GAP产生
  • 力扣.1471数组的k个最强值,力扣.1471数组的k个最强值力扣1576.替换所有的问号力扣1419.数青蛙​编辑力扣300.最长递增子序列
  • 小程序映射逻辑处理
  • day 17 无监督学习之聚类算法
  • 各编程语言对正则表达式标准的支持对比
  • Python生成器:高效处理大数据的秘密武器
  • k8s(12) — 版本控制和滚动更新(金丝雀部署理念)
  • 集合进阶2
  • opencv4.11编译Debug提示缺少python312_d.lib或python3*_d.lib的解决办法
  • 金仓数据库使用sys_walfile_name函数时的时间线问题排查指南
  • C++ 基础知识点
  • Prometheus监控系统部署
  • 机器视觉对位手机中框点胶的应用
  • 普通IT的股票交易成长史--20250515复盘
  • linux系统服务
  • 康耐视VisionPro脚本开发实战教程
  • ArcGIS Pro调用多期历史影像
  • 爬虫原理与实战指南
  • 安全牛报告解读《低空经济发展白皮书(3.0)安全体系》
  • 《无限暖暖》画质测评
  • 高途一季度净利润同比增长1108%: “与吴彦祖一起学英语”短时间内就实现了盈利
  • 新版城市规划体检评估解读:把城市安全韧性摆在更加突出位置
  • 习近平在第三十五个全国助残日到来之际作出重要指示
  • 黑龙江省政府副秘书长许振宇,拟任正厅级领导
  • 订婚不等于性同意!山西订婚强奸案入选最高法案例
  • 上海虹桥国际咖啡文化节周五开幕,来看Coffeewalk通关攻略