当前位置: 首页 > 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 代码,读者可通过插件或在线工具查看动态效果。

相关文章:

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

算法图表总结&#xff1a;查找、排序与递归&#xff08;含 Mermaid 图示&#xff09; 分类标签&#xff1a;算法、数据结构、Mermaid、技术图表 关键词&#xff1a; 算法可视化、Mermaid 图表、数据结构、二分查找、快速排序、递归树 摘要&#xff1a; 本文通过 Mermaid 图表…...

在文件检索方面doris和elasticsearch的区别

apache Doris 与 Elasticsearch 在文件检索领域的差异源于技术架构与定位目标的本质区别,以下从核心维度对比分析二者的技术特性: 一、 ‌架构设计与定位差异‌ ‌维度‌‌Apache Doris‌‌Elasticsearch‌‌核心架构‌分布式 MPP 列式分析引擎,面向 OLAP 优化分布式倒排索…...

linux系统服务

Linux 系统服务&#xff08;System Services&#xff09; 是在后台持续运行的进程&#xff08;守护进程&#xff0c;即 daemon&#xff09;&#xff0c;用于提供核心功能或支持其他应用程序&#xff08;如网络管理、日志记录、定时任务等&#xff09;。它们通常在系统启动时自动…...

大语言模型三大演进方向:记忆增强、工具集成与多模态突破

目录 一、方向演进:从通用模型到记忆增强系统 1.1 技术瓶颈分析 1.2 记忆增强技术路径 1.3 企业级应用架构 二、工具调用:从语言理解到行动执行 2.1 工具调用协议演进 2.2 工具编排范式比较 三、多模态突破:跨模态统一建模 3.1 多模态架构演进 3.2 医学多模态应用…...

嵌入式学习笔记DAY21(双向链表、Makefile)

一、双向链表 1.概念 双向链表&#xff08;Doubly Linked List&#xff09; 是一种链式数据结构&#xff0c;每个节点包含 两个指针&#xff08;前驱指针 prev 和后继指针 next&#xff09;&#xff0c;分别指向 前一个节点 和 后一个节点&#xff0c;形成双向连接。 头节点&…...

Vue 学习随笔系列二十三 -- el-date-picker 组件

el-date-picker 组件 文章目录 el-date-picker 组件el-date-picker 只有某些日期可选 el-date-picker 只有某些日期可选 <template><div><el-form ref"form" size"mini":model"form" :rules"rules"label-width"8…...

IEEE出版|连续多年稳定检索|第三届信号处理与智能计算国际学术会议(SPIC2025)

【重要信息】 会议官网&#xff1a; www.ic-spic.com 会议日期&#xff1a;2025年11月28-30日 会议地点&#xff1a;中国 广州 截稿日期&#xff1a;2025年11月10日 接受或拒绝通知日期&#xff1a;提交后7个工作日 【征稿主题】 人工智能和机器学习 计算机系统和架构 …...

用Python代码绘制动态3D爱心效果

引言 介绍Python在创意编程中的应用&#xff0c;特别是如何通过简单的代码实现视觉上的美感。引出本文将分享的爱心代码&#xff0c;并简要说明其实现原理。 爱心代码的基本实现 展示一个简单的Python代码示例&#xff0c;使用字符画的方式在控制台中绘制一个爱心图案。 pr…...

牛客网刷题:NC208813求逆序数

牛客网刷题&#xff1a;NC208813求逆序数 问题描述 在排序和数据结构分析中&#xff0c;逆序数是一个重要的概念。对于一个数列来说&#xff0c;如果一对数的前后位置与大小顺序相反&#xff08;即前面的数大于后面的数&#xff09;&#xff0c;那么它们就称为一个逆序对。一个…...

Day 21 训练

Day 21 训练 常见的降维算法数据预处理无监督降维PCA&#xff08;主成分分析&#xff09;主成分分析&#xff08;PCA&#xff09;作用和优势应用场景t-SNE&#xff08;t-分布随机邻域嵌入&#xff09;t-SNE&#xff08;t-分布随机邻域嵌入&#xff09;为什么 t-SNE 特别适用于高…...

1267, “Illegal mix of collations (latin1_swedish_ci,IMPLICIT

python 执行数据迁移报错 mysql : 1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT 解决方法&#xff1a; 替换TABLE 后面的表名为你自己的表名&#xff0c;mysql 黑窗口执行。 以下是我的表名&#xff0c;仅作参考 ALTER TABLE book CONVERT TO CHARACTE…...

【C#】Thread.Join()、异步等待和直接join

JogThread.Join() 是 .NET 中 System.Threading.Thread 类的一个方法&#xff0c;用来让当前调用线程暂停执行&#xff0c;直到目标线程&#xff08;这里是 JogThread&#xff09;终止为止。以下是它的核心语义和你在 UI 代码里需要注意的几个相关知识点。 1. Thread.Join() 的…...

Malformed input or input contains unmappable characters解决

JDK 17 文件上传编码异常解决方案技术文档 1. 问题背景 在 JDK 17 环境下&#xff0c;文件上传过程中可能抛出 Malformed input or input contains unmappable characters 错误。此问题通常由以下原因触发&#xff1a; 文件路径/名称包含非 ASCII 字符&#xff08;如中文、日…...

PYTHON训练营DAY26

一、函数 &#xff08;一&#xff09;不带参数的函数 # 定义一个简单的问候函数 def greet():"""打印一句问候语。"""message "大家好&#xff01;欢迎学习Python函数定义&#xff01;"print(message)greet()&#xff08;二&#x…...

奇变偶不变,符号看象限

三角函数诱导公式口诀详解&#xff1a;奇变偶不变&#xff0c;符号看象限 口诀解析 1. 口诀含义 奇变偶不变&#xff1a; 奇/偶&#xff1a;指角度加减的是π/2&#xff08;90&#xff09;的奇数倍还是偶数倍 奇数倍&#xff08;如π/2, 3π/2&#xff09;→ 函数名改变&…...

基于SpringBoot的家政服务系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...

Makefile 在 Go 项目中的实践

在 Go 项目中&#xff0c;Makefile 是一个强大的工具&#xff0c;用于自动化构建、测试和部署流程。它不仅能减少重复命令输入&#xff0c;还能确保团队开发环境的一致性。本文以 CoreDNS&#xff08;一个高性能 DNS 服务器&#xff09;的 Makefile 为例&#xff0c;解析其设计…...

关闭所有Nginx进程

要关闭所有Nginx进程&#xff0c;可以使用以下命令。这些命令适用于不同的操作系统。 在Linux/Unix系统中 在Linux或Unix系统中&#xff0c;可以使用killall命令来关闭所有Nginx进程。 sudo killall nginx 在Windows系统中 在Windows系统中&#xff0c;可以使用taskkill命…...

开源模型应用落地-模型上下文协议(MCP)-Resources-资源的使用逻辑

一、前言 在大型语言模型与外部世界交互的探索中&#xff0c;如何高效、灵活地接入多样化数据始终是核心命题。MCP&#xff08;Model Context Protocol&#xff09;协议中的Resources 机制&#xff0c;正是为这一问题提供了优雅的解决方案。通过URI&#xff08;统一资源标识符&…...

如何判断一个网站后端是用什么语言写的

判断一个网站的后端是用什么语言写的&#xff0c;可以从以下几个方面入手&#xff1a; 一、通过响应头&#xff08;HTTP Response Headers&#xff09; 使用浏览器开发者工具或工具如 curl 查看网站返回的响应头信息&#xff0c;有时可以看到蛛丝马迹&#xff1a; 示例&#…...

CertiK助力以太坊扩展战略,解析Pectra升级的变革与挑战

近期&#xff0c;美国知名金融科技媒体Benzinga发表文章&#xff0c;深入探讨以太坊Pectra升级的变革性影响&#xff0c;并特别引用了CertiK对潜在风险的权威分析&#xff0c;特别是EIP-7702引入的全新信任模型变化。此次升级不仅重新定义了EOA与智能合约的交互方式&#xff0c…...

【C++】Module CPP:模块化编程 Demo

一、C20 模块简介 C20 模块是 C 语言发展史上的重要革新&#xff0c;它从根本上改变了代码组织方式。相比传统的头文件&#xff08;#include&#xff09;机制&#xff0c;模块具有以下核心优势&#xff1a; 隔离编译&#xff1a;模块独立编译&#xff0c;避免重复编译头文件符…...

mvc-service引入

什么是业务层 1&#xff09;Model1&#xff08;JSP&#xff09;和Model2&#xff08;模糊的mvc&#xff09;: MVC&#xff1a;Model(模型)&#xff0c;View(视图)&#xff0c;Controller&#xff08;控制器&#xff09; 视图层&#xff1a;用于数据展示以及用户交互的界…...

Linux线程互斥锁

1. 什么是互斥锁&#xff08;Mutex&#xff09;&#xff1f; 互斥锁&#xff08;Mutex&#xff0c;Mutual Exclusion&#xff09; 是一种用于多线程编程的同步机制&#xff0c;用于保护共享资源&#xff08;如变量、内存、文件等&#xff09;&#xff0c;确保在同一时刻只有一…...

PINN Poisson 1d

&#x1f4cc; 一、问题定义 我们要求解的微分方程是 d 2 u d x 2 f ( x ) \begin{equation} \frac{d^2 u}{d x^2} f(x) \end{equation} dx2d2u​f(x)​​ 其中: f ( x ) − 0.49 s i n ( 0.7 x ) − 2.25 c o s ( 1.5 x ) f(x) -0.49sin(0.7x) - 2.25cos(1.5x) f(x)−…...

国内优质沉金PCB厂家有哪些?

在高端电子制造领域&#xff0c;沉金工艺因其优异的抗氧化性、信号完整性和焊接可靠性&#xff0c;成为5G通信、AI服务器、新能源汽车等领域的核心需求。本文精选五家国内技术领先的沉金PCB厂家&#xff0c;从工艺精度、交付效率、品质管控等维度展开深度解析&#xff0c;助力企…...

【Trae插件】从0到1,搭建一个能够伪装成网页内容的小说阅读Chrome插件

【Trae插件】从0到1&#xff0c;搭建一个能够伪装成网页内容的小说阅读Chrome插件 最近&#xff0c;Trae 插件也迎来了更新&#xff0c;Trae 插件&#xff08;原MarsCode 编程助手&#xff09;Builder模式全面上线&#xff0c;同时支持 VS Code 、JetBrains IDEs&#xff0c;助…...

2025年5月AI科技领域周报(5.5-5.11):AGI研究进入关键验证期 具身智能开启物理世界交互新范式

2025年5月AI科技领域周报&#xff08;5.5-5.11&#xff09;&#xff1a;AGI研究进入关键验证期 具身智能开启物理世界交互新范式 一、本周热点回顾1. OpenAI发布GPT-5多模态大模型 突破通用智能关键阈值2. 特斯拉Optimus机器人量产版发布 具身智能进入工业场景3. 百度文心ERNIE…...

UDP 多点通信

一、setsockopt/getsockopt 函数详解 1. 函数原型 c #include <sys/socket.h> int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen); int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);…...

什么是TCP协议?它存在哪些安全挑战?

一、TCP协议概述 TCP&#xff08;传输控制协议&#xff09;是互联网中面向连接、可靠的传输层协议&#xff0c;主要负责在不可靠的IP层上实现数据的可靠传输。其核心特点包括&#xff1a; 面向连接&#xff1a;通信前需通过三次握手&#xff08;SYN-SYN/ACK-ACK&#xff09;建…...

《Python星球日记》 第80天:目标检测(YOLO、Mask R-CNN)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、目标检测简介1. 边界框(Bounding Box)与类别标签2. 两阶段 vs 单阶段检测器两阶段检测器特点:单阶段检测器特点:二、YOLO(You Only Lo…...

工业大数据的定义

目录 工业大数据的定义 工业大数据发展历程 工业大数据的特征 工业大数据的处理流程 工业大数据在处理上面临的挑战 工业大数据的有效处理方案 工业大数据处理相关案例 数益工联 x TDengine 中天钢铁 x TDengine 广州某企业工业互联网项目 x TDengine 格创东智 x TD…...

Cursor vs VS Code vs Zed

代码编辑器的世界已经迎来了创新的爆发。曾经由重量级IDE或基础文本编辑器主导的领域,如今开发者们发现自己正在探索全新一波聚焦于AI集成、协作和性能的工具。 在本文中,我们将深入探讨2025年三款流行的编辑器:Cursor、Visual Studio Code (VS Code)和Zed Code Editor。每…...

道通龙鱼系列-混合翼无人机:垂直起降+长时续航

道通龙鱼系列-混合翼无人机&#xff1a;垂直起降长时续航 道通龙鱼系列无人机采用独特的倾转翼尖设计&#xff0c;有效融合多旋翼垂直起降和固定翼长时续航的双重优势&#xff0c;机动、灵活&#xff0c;适应各种复杂起降条件&#xff1b;整机采用快拆和高效气动设计&#xff0…...

单片机-STM32部分:17、数码管

飞书文档https://x509p6c8to.feishu.cn/wiki/TOQqweKHWinugokUyqzcwb0fnTd 原理&#xff1a; 一个二极管等于八个LED组合在一起&#xff0c;想要显示什么形状&#xff0c;就点亮对应LED即可。 数码管根据其公共端所接的阳极和阴极的不同&#xff0c;分为了共阴极数码管和共阳…...

Web安全科普:构建数字世界的“防盗门”

目录 一、Web安全的核心挑战 二、六大核心威胁深度解析 三、安全防御体系构建 四、开发者必备工具包 五、法律合规要点 六、未来安全趋势 一、Web安全的核心挑战 1. 攻击者视角的入口 数据流动路径&#xff1a;用户 → 浏览器 → 网络 → 服务器 → 数据库 脆弱点分布&a…...

深入解析HTTP协议演进:从1.0到3.0的全面对比

HTTP协议作为互联网的基础协议&#xff0c;经历了多个版本的迭代演进。本文将详细解析HTTP 1.0、HTTP 1.1、HTTP/2和HTTP/3的核心特性与区别&#xff0c;帮助开发者深入理解网络协议的发展脉络。 一、HTTP 1.0&#xff1a;互联网的奠基者 核心特点&#xff1a; 短连接模式&am…...

【RAP】RAP动作与流行舞蹈/街舞

RAP动作与流行舞蹈风格的匹配性分析 Rap动作与各种流行舞蹈风格的匹配度如下: 最匹配 街舞(Hip-hop/Street Dance) 完美匹配程度:★★★★★原因:Rap和街舞同源于嘻哈文化,共享相同的文化根基特点:街舞的断点式动作、力量感和即兴性与Rap的节奏完美契合代表动作:Break…...

BUUCTF——web刷题第一页题解

共31题&#xff0c;admin那题没有&#xff0c;因为环境问题&#xff0c;我做的非常卡 目录 极客大挑战 2019]Havefun [HCTF 2018]WarmU [ACTF2020 新生赛]Include [ACTF2020 新生赛]Exec [GXYCTF2019]Ping Ping Ping [SUCTF 2019]EasySQL [极客大挑战 2019]LoveSQL [极…...

windows、Ubuntu、Debian 添加静态路由

1. windows 10 添加静态路由 快捷键win R&#xff1a; 输入 cmd &#xff0c;打开命令行窗口 route print // 查看已经存在的路由 route add 192.168.3.0 mask 255.255.255.0 192.168.3.200 // 添加静态路由 192.168.3.200 为下一跳 route add -p 192.168.…...

服务器连接多客户端

一、epoll 核心函数详解 1. epoll_create/epoll_create1 - 创建 epoll 实例 c #include <sys/epoll.h> int epoll_create(int size); // Linux 2.6.8前需指定size&#xff08;>1&#xff09;&#xff0c;后续版本可忽略 int epoll_create1(int flags); // 推荐使用…...

驿客时光影院酒店升级:雷克赛恩 Cyber Pro 1 如何重塑住宿观影体验

一、影院式酒店新趋势&#xff1a;当住宿邂逅沉浸式观影体验 &#xff08;一&#xff09;驿客时光的差异化突围 成都温江区的驿客时光影院酒店&#xff0c;凭借 “百寸巨幕观影 舒适住宿” 的差异化定位&#xff0c;成为年轻旅客打卡热点。其 20 间主题客房均配备独立投影设…...

Cinema4D 26.014

添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 软件概述 Cinema 4D是德国MAXON公司开发的一款专业的3D动画、建模、仿真和渲染软件解决方案&#xff0c;在3D设计领域应用广泛。 功能特点 强大的建模功能 多边形建模&#xff1a;提供了丰富的多边形建模…...

脚本语言Lua

本文来源 &#xff1a;腾讯元宝 Lua是一种轻量级、可嵌入的脚本语言&#xff0c;由巴西里约热内卢天主教大学的Roberto Ierusalimschy、Waldemar Celes和Luiz Henrique de Figueiredo于1993年开发。其设计目标是嵌入应用程序中&#xff0c;提供灵活的扩展和定制功能。 主要特性…...

106. 从中序与后序遍历序列构造二叉树

https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/description/?envTypestudy-plan-v2&envIdtop-interview-150思路&#xff1a;我们知道后序的顺序是左右根&#xff0c;所以后序数组的最后一个一定是根节点&#xff0c;然后中序…...

全链路压测实战指南:从理论到高可用架构的终极验证

全链路压测实战指南:从理论到高可用架构的终极验证 引言:你的系统,真的准备好迎接洪峰了吗? 凌晨3点,某大型电商平台秒杀活动突袭上线。百万用户同时涌入,订单接口响应时间从200ms飙升到15秒,数据库连接池被瞬间耗尽,支付服务直接“熔断”,连锁反应导致库存混乱、物流…...

分布式AI推理的成功之道

随着AI模型逐渐成为企业运营的核心支柱&#xff0c;实时推理已成为推动这一转型的关键引擎。市场对即时、可决策的AI洞察需求激增&#xff0c;而AI代理——正迅速成为推理技术的前沿——即将迎来爆发式普及。德勤预测&#xff0c;到2027年&#xff0c;超半数采用生成式AI的企业…...

纯前端实现基于位置的天气和动态背景图片

如何为博客首页实现基于位置的天气和动态背景图片 引言 我为我的博客主页添加了根据用户所在位置显示当地天气、日出日落时间&#xff0c;并加载一张与天气和时间段匹配的高质量背景图片&#xff0c;可以显著提升用户体验。想象晴天时展示阳光普照的田野&#xff0c;雨天时呈现…...

1.1 认识编程与C++

认识编程与C教程 目标 理解程序、指令、数据的概念。了解C在现实中的应用场景。学会搭建编程环境&#xff0c;迈出第一步。 一、编程是什么&#xff1f;——给计算机写“魔法指令” 1. 基本概念 程序&#xff1a;一系列指令的集合&#xff0c;像一本“魔法食谱”。 &#x…...

代码随想录算法训练营第60期第三十七天打卡

大家好&#xff0c;今天我们算法训练营的第37天&#xff0c;首先为自己感到骄傲&#xff0c;居然坚持下来了&#xff0c;本来觉得自己可能坚持不下来&#xff0c;但是我硬是坚持下来了&#xff0c;好样的&#xff0c;同时也感谢那些看我的题解给我点赞的朋友&#xff0c;我在这…...