- 博客(60)
- 收藏
- 关注
原创 1.从“会敲命令”到理解 Linux:15 个基础指令、文件树与命令执行的本质
摘要 本文面向Linux初学者,通过15个基础命令串联文件系统与命令执行的本质。文章首先解释命令行界面的优势(可重复、可组合、可自动化),区分终端、Shell与内核的关系。重点剖析Linux树状文件系统结构,强调绝对路径与相对路径的区别,以及特殊目录符号(.、..、~)的含义。随后围绕"位置、对象、内容、帮助"四大主题详解15个核心命令:pwd/cd定位路径,ls/touch/mkdir操作文件目录,stat/cat查看内容,man/which获取帮助等。特别指出命令执行本质是Shell解析文字后请求内核操
2026-08-13 22:04:06
298
原创 Linux 初识:从操作系统的诞生,到内核、发行版、云服务器与 SSH
Linux操作系统入门指南:历史、内核与发行版 本文介绍了Linux操作系统的核心概念与发展历程。从早期计算机需求引出操作系统的作用——管理硬件资源并提供统一接口。重点解析了UNIX、C语言与Linux的历史渊源,指出Linux是类UNIX内核而非UNIX的简单复制。文章区分了操作系统内核(如Linux)与发行版(如Ubuntu、CentOS)的区别,并详细解读了内核版本号的组成。最后阐述了Linux在企业后端的重要地位,特别强调了其在服务器领域的优势:开源、可定制、自动化能力强等特性,以及成熟的运维生态和
2026-08-13 21:53:02
499
原创 2026 年电赛(TI 杯)H 题:完整测评流程、失败案例复盘、比赛策略与开源交付
摘要:本文总结了MSPM0G3507双主控小车从硬件搭建到控制算法的全流程开发经验,重点解析测评验收的关键要点与典型失败案例。系统通过模块化设计实现循迹、速度环、航向辅助、摆杆滚球三层PID控制及双主控通信,强调以赛道状态机分段处理直线/弯道差异。文中详述5类典型故障(如TB6612供电异常、灰度传感器极性错误、参数全局化导致的直线蛇形等),提出"验收导向"的开发方法,要求每项功能需在正式机械/地图条件下重复验证。完整工程开源,包含Keil工程、测试脚本和模块化封装,建议通过8篇系列文章按顺序掌握系统设计思
2026-08-08 22:17:14
406
原创 2026 年电赛(TI 杯)H 题:MaxiCamPro、双主控通信、VOFA+ 遥测与可复现实验方法
MSPM0G3507双主控小车开发全记录 摘要:本文系统记录了基于MSPM0G3507的双主控平衡滚球小车开发全过程,涵盖硬件搭建、软件设计、控制算法及实验方法。项目采用模块化架构,包含编码器速度环、MPU6050航向环、8路灰度循迹、MaxiCamPro视觉测量和三层PID滚球控制等核心模块。通过VOFA+遥测、双主控通信协议和回归测试方法构建可观测系统,确保调试过程数据驱动。文章详细解析了直线振荡、滚球超调等典型问题的波形分析方法,并开源了完整工程代码、测试脚本及技术文档,为同类控制系统的开发提供可复现
2026-08-08 22:16:33
354
原创 2026 年电赛(TI 杯)H 题:摆杆机械结构、MaxiCamPro 测量、步进编码器与三层 PID
摘要: 本文是MSPM0G3507双主控小车项目的第六篇,聚焦摆杆滚球系统的机械结构、视觉测量与三层PID控制。文章详细分析了滚球系统的欠驱动特性,强调机械结构对闭环性能的影响,指出步进电机需结合编码器反馈以避免失步问题。视觉模块MaxiCamPro仅提供球位置测量,控制逻辑由主控实现以确保实时性和安全性。文中提出三层串级PID控制策略:位置环生成目标速度,速度环输出倾角指令,角度环通过编码器反馈调节步进电机。最后强调像素标定、多球筛选和故障处理的重要性,并提供开源仓库链接供复现参考。 关键词: 欠驱动控制
2026-08-08 22:04:37
371
原创 2026 年电赛(TI 杯)控制类 H 题:8 路灰度循迹、直线/半圆分段控制与 S1/S2/S3 状态机
摘要: 本文介绍基于MSPM0G3507双主控小车的完整开发流程,涵盖硬件选型、传感器调试、循迹控制与摆杆滚球系统的实现。重点解析8路灰度循迹的分层处理逻辑,包括加权质心偏差计算、直线/半圆的差异化PID策略及状态机设计,强调几何前馈与传感器证据融合对弯道控制的重要性。提供开源工程与模块化代码,并分享调试中"单变量调整""数据遥测"等工程方法,适用于智能车竞赛的复现与优化。
2026-08-07 21:15:28
282
原创 2026 年电赛(TI 杯)控制类 H 题:编码器速度环、差速运动学、MPU6050 航向环与直线稳定性
本文介绍了MSPM0G3507双主控小车的编码器速度环控制、差速运动学模型和MPU6050航向辅助系统的实现方法。重点分析了直线行驶中蛇形振荡的原因,提出了基于编码器的速度估算与PID控制策略,详细阐述了差速底盘的运动学原理和循迹PID与速度环的级联关系。文章还探讨了MPU6050在航向辅助中的应用,包括直线稳定性控制和半圆到直线过渡的特殊问题处理。通过硬件实测和软件调试,实现了小车的稳定直线行驶能力。完整工程代码和测试数据已开源发布。
2026-08-07 21:14:55
325
原创 2026 年电赛(TI 杯)控制类 H 题:软件分层、SysConfig、10 ms 调度与可复用模块设计
摘要 本文介绍了MSPM0G3507双主控小车的开发全流程,包括硬件搭建、软件架构、模块化设计和控制算法实现。系统采用分层设计(通用算法层、MSPM0适配层、应用任务层),通过10 ms固定周期调度实现灰度循迹、速度环控制、航向辅助和摆杆滚球三层PID控制。文章重点阐述了软件架构的重要性,强调使用SysConfig统一管理外设配置,并通过模块化设计确保代码可维护性。此外,还介绍了双主控通信、VOFA+遥测和回归测试方法,确保系统稳定性和可复现性。完整工程已开源,包含硬件接线说明、测试脚本和模块封装,便于复现
2026-08-07 21:14:19
564
原创 2026 年电赛(TI 杯)H 题:硬件选型、电源完整性、引脚分配与逐项上电验证
摘要 本文介绍了MSPM0G3507双主控小车的完整开发过程,包括硬件选型、软件架构、控制算法和工程实践。系统采用模块化设计,包含速度环、航向环、灰度循迹状态机和三层滚球PID控制。硬件方面重点解决了电源完整性、引脚分配和机械安装等关键问题。文章提供了详细的调试方法和开源资料(GitHub仓库),强调通过串口遥测、回归测试和可复现实验来保证系统稳定性。特别针对双主控通信、MaxiCam Pro视觉测量和步进电机控制等难点给出了解决方案,并分享了测评流程和失败案例复盘经验。
2026-08-07 21:13:01
778
原创 2026 年电赛(TI 杯)H 题:赛题分析与总体方案
本文介绍了基于MSPM0G3507双主控小车的嵌入式开发全流程,包括硬件搭建、软件架构、控制算法和实验方法。该系统采用分层设计,将循迹控制与滚球稳定解耦为两个独立闭环:小车主控负责8路灰度循迹、速度环和航向环;摆杆主控通过视觉测量和三层PID控制滚球位置。文章强调模块化开发、实时遥测和可复现测试的重要性,并提供了完整的开源工程。通过双主控架构有效解决了运动与滚球控制的耦合问题,为类似机电系统设计提供了参考方案。
2026-08-07 21:11:47
632
原创 嵌入式小白第三站:UART、I2C、SPI、ADC 怎么学?从传感器读数到完整小项目
嵌入式通信与数据流:从UART到完整项目开发 摘要:本文从嵌入式开发的数据流视角,系统讲解UART、I2C、SPI、ADC等关键通信接口的学习路径。首先指出嵌入式项目的核心在于构建"数据从哪里来、到哪里去"的完整管道,而非单纯记忆协议细节。针对UART,详述了电平标准(TTL/RS232/RS485)区别、乱码排查方法和数据接收策略;针对I2C,解析了7/8位地址区别和开漏输出特性;最后提出从驱动层到应用层的开发框架,建议初学者以传感器数据采集-处理-显示的小项目为切入点,逐步掌握嵌入式系统的数据流设计与调
2026-06-07 23:20:42
529
9
原创 嵌入式小白第二站:GPIO、原理图和寄存器到底怎么回事?从点亮 LED 到真正看懂引脚
摘要:本文是嵌入式开发的第二站,聚焦于GPIO、原理图和寄存器,从点亮LED实验出发,深入解析嵌入式硬件控制的核心概念。通过LED和按键实验,文章拆解了GPIO的输入输出模式、上下拉电阻、推挽与开漏电路、寄存器配置等关键点,强调硬件与代码的协同关系。重点包括: GPIO本质:作为MCU与外部交互的“手指”,可配置为输入、输出、复用或模拟功能; 原理图优先:代码必须基于电路设计,明确LED/按键的接法(高/低电平有效); 电平稳定性:上拉/下拉电阻避免引脚浮空,确保信号可靠; 工作模式:详解输入(浮空、上下拉
2026-06-07 23:10:01
675
9
原创 5. OpenClaw 从学习到落地:企业路线图、个人学习路径与项目复盘
比如读写内部文档、修改数据、提交工单、触发部署等。这类动作风险更高,必须有权限控制、二次确认、审计日志和回滚机制。这个顺序能让企业逐步建立信任。很多 AI 项目失败,并不是技术做不到,而是一开始就让系统拥有太多动作权限,导致团队心理上不敢用。把前面的知识组合起来,形成一个可定时运行、可生成文档、可推送消息的完整 Skill。这一步是从“会写小工具”到“会做小系统”的跨越。
2026-06-03 00:00:00
248
2
原创 4. 拆解 tmtpost-news-daily:一个 OpenClaw 每日早报 Skill 如何落地
代码/tmtpost-news-daily/docs/tmtpost-news-daily-requirements.md代码/tmtpost-news-daily/docs/tmtpost-news-daily-technical-design.md这说明这个示例不是“先写代码再补文档”,而是展示了一个更标准的流程:需求先行,方案随后,代码落地,最后再进入测试和运行。在 Markdown 顶部或日志里写入运行状态。
2026-06-02 00:15:00
136
6
原创 3. OpenClaw Skill 开发方法论:从 weather-bit 到 qrcode-gen
发现阶段:只加载name和激活阶段:任务匹配时加载完整SKILL.md执行阶段:按需读取脚本、引用文档、调用资源这个机制背后的设计思想很先进,因为它天然在控制上下文成本。对于大模型系统来说,上下文就是预算,也是速度,更是稳定性。把所有 Skill 的全部内容一股脑塞给模型,既浪费,又容易干扰。因此,一个优秀 Skill 的写法,首先不是“越长越好”,而是“发现信息足够准确,激活说明足够清晰,执行资源按需加载”。这就是 Skill 开发和普通文档写作最大的不同。SKILL.md。
2026-06-02 00:00:00
559
6
原创 2. OpenClaw 架构落地指南:部署、渠道集成与安全边界全解
很多技术教程会把“部署成功”理解成命令执行完成、页面能打开、机器人能回一句话。入口通了模型通了工具通了Skill 能调定时任务能跑输出结果可见风险边界可控只有这些都成立,系统才算真正进入可用状态。OpenClaw 的难点,从来不只是“怎么装”,而是“怎么把一个能执行动作的 AI 系统放进真实环境而不失控”。因此,学习 OpenClaw 时不要把它简化成一串安装命令,而要把架构、部署、渠道、安全、运行方式和实际工作流串成一体。架构上,我的入口、决策层和执行层有没有分清。
2026-06-01 10:51:28
970
6
原创 1. 从“会聊天”到“会干活”:OpenClaw 与 AI Agent 全景入门
结合公开资料与示例工程,OpenClaw 可以概括为一句话:它不是单纯的对话产品,而是一个“能调用工具、能接收外部消息、能在本地或服务器上执行任务”的 AI 代理平台。它曾用名ClawdbotMoltbot,社区里也常把它称作“小龙虾”。本地优先可自托管多渠道接入强任务执行能力通过 Skill 机制无限扩展这里“本地优先”特别值得展开。很多人第一次听到这个词会理解成“完全离线”,但更准确的理解是:本地优先不等于本地唯一。
2026-06-01 10:29:25
734
2
原创 C++从菜鸟到强手:2.类和对象(下)—— 进阶特性与完整日期类实现
本文介绍了C++类和对象的高级特性,包括初始化列表、explicit关键字、static成员、友元、内部类、匿名对象等核心概念。重点讲解了初始化列表的使用场景(const成员、引用成员、无默认构造的类成员)及其与构造函数体内赋值的区别,分析了成员变量的初始化顺序问题。此外,还探讨了隐式类型转换机制及如何用explicit关键字禁止隐式转换,为后续深入学习C++面向对象编程打下基础。
2026-05-25 00:00:59
457
3
原创 C++从菜鸟到强手:2.类和对象(中)—— 拷贝、赋值与运算符重载
本文深入探讨了C++中的拷贝构造函数、深拷贝与浅拷贝等核心概念。主要内容包括: 拷贝构造函数的定义与使用场景,强调其参数必须为const引用以避免无限递归 浅拷贝的潜在问题:当类包含动态内存时,默认浅拷贝会导致重复释放内存 深拷贝的解决方案:在拷贝构造函数中为副本分配独立内存并复制数据 通过Stack类的示例,图解浅拷贝与深拷贝的内存差异 这些概念直接关系到程序的正确性和内存安全,是编写健壮C++代码的关键。文章通过代码示例和内存图解,清晰展示了这些核心机制的工作原理和实际应用。
2026-05-24 23:55:51
662
1
原创 C++从菜鸟到强手:2.类和对象(上)—— 从结构体到类的跨越
本文介绍了C++中类和对象的基础概念,重点讲解了类的定义、访问限定符、实例化过程以及this指针的工作原理。文章通过对比C语言的struct与C++的class,展示了面向对象编程的数据封装特性。主要内容包括:类的基本语法结构,public/private访问权限的区别,类与对象的内存分配关系(空类占1字节),以及this指针如何隐式传递对象地址以实现成员函数的正确调用。这些基础知识为后续深入学习C++面向对象编程奠定了基础。
2026-05-24 23:25:41
626
1
原创 2026年电赛校赛备战MSPM0G3507+keil讲解(中)-----2025年电赛E题云台篇
STM32F103C8T6云台系统设计与实现 本文介绍了基于STM32F103C8T6的云台控制系统设计。该系统作为智能车视觉跟踪的核心模块,集成了视觉解析、双轴步进控制、激光瞄准等功能,通过状态机实现多种工作模式切换。文章详细阐述了系统架构,包括硬件组成(主控、视觉模块、步进电机、激光模块等)和软件设计(主程序流程、配置中心、视觉数据解析、状态机控制等)。重点分析了云台的多模式控制策略(待机、瞄准、扫描、画图等)、视觉数据处理方法以及与底盘的安全联动机制。系统采用模块化设计,通过定时器中断实现精准控制,具
2026-05-23 20:46:28
473
1
原创 2026年电赛校赛备战MSPM0G3507+keil讲解(下)-----2025年电赛E题综合
摘要: 本文详解了双主控系统(MSPM0底盘与STM32云台)通过UART协议实现运动联调的技术方案。系统采用二进制帧通信(含CRC校验),底盘发送运动状态(含轨迹相位、故障标志等),云台反馈心跳包(含视觉误差、激光状态等)。核心创新在于相位同步机制——云台根据底盘实时运动进度(0-10000归一化值)动态调整画圆/矩形轨迹,实现运动协同。系统内置多重安全策略:通信超时检测、急停指令传递、故障互锁等,确保比赛中的可靠性。文章还剖析了视觉单位转换、参数调试要点及模块化设计思想,为嵌入式联动系统开发提供实用参考
2026-05-23 20:43:49
515
原创 2026年电赛校赛备战MSPM0G3507+keil讲解(上)-----2025年电赛E题小车篇
本文介绍了基于MSPM0G3507的智能小车底盘控制系统设计。系统采用模块化架构,包含8路灰度传感器循迹、TB6612电机驱动、编码器测速等功能模块。通过1ms定时中断实现多任务调度,包括5ms速度PID控制、20ms状态上报和100ms OLED刷新。系统采用状态机管理底盘运行模式(IDLE/RUN/CORNER/FINISHED/FAULT),并通过结构体集中管理配置参数和实时状态。文章重点阐述了底盘控制系统的分层架构(输入-处理-输出)、实时调度策略以及灰度传感器的数据处理方法,为后续云台控制奠定了稳
2026-05-23 20:08:30
978
1
原创 2026年电赛校赛备战 MSPM0G3507 + Keil 讲解:前提篇
摘要: 本文介绍基于MSPM0G3507和STM32F103C8T6双主控的电赛E题解决方案,重点解析小车底盘循迹与云台瞄准系统的协同设计。项目采用模块化开发思路:MSPM0负责8路灰度循迹、电机PID控制及赛道状态管理;STM32处理视觉识别、云台运动控制及激光瞄准。双板通过UART协议实时交换底盘圈数、赛段进度与云台状态,确保运动过程中稳定瞄准。开发环境使用Keil+SysConfig配置MSPM0外设,详细拆解了赛道特征处理、状态机设计及联调策略,为后续PID算法、通信协议等核心模块实现奠定基础。(1
2026-05-23 20:07:30
715
1
原创 python启航:1.基础语法知识
on a = 100 b = 100 print(a is b) # True,因为100在小整数池中 x = 1000 y = 1000 print(x is y) # False,大整数会创建新对象 #### 3.3 类型转换的艺术 - **隐式转换**:Python会在某些情况下自动转换类型,如整数和浮点数运算时,结果会提升为浮点数。 - **显式转换**:使用内置函数`int()`, `float()`, `str()`, `bool()`等进行强制转换。 - **注意事项**: - 字符串转数字时
2026-04-23 22:14:18
393
原创 C++从菜鸟到强手:1.基础入门
C++是一门强类型、编译型的通用编程语言,兼具面向过程和面向对象的特性。它由于1979年在贝尔实验室开始研发,旨在解决C语言在大型软件开发中表达能力、可维护性不足的问题。C++的设计目标是在保留C语言高效性和底层控制力的同时,引入面向对象理念,构建复杂系统。核心特点:高效性:允许底层编程,直接操控硬件和内存。面向对象:支持类、封装、继承、多态。多范式:支持面向对象、泛型编程、函数式编程等。标准库:拥有丰富的标准库(如STL),涵盖容器、算法、I/O等。兼容C:几乎无缝兼容C语言代码。定义:使用。
2026-04-23 21:49:57
491
原创 数据结构:排序(下)---进阶排序算法详解
快速排序与归并排序详解 本文详细介绍了两种高效排序算法:快速排序和归并排序。快速排序采用分治策略,通过基准值将序列划分为两部分,递归排序实现整体有序,平均时间复杂度O(N log N)。文章分析了快速排序的霍尔版本实现、相遇位置特性、递归深度以及优化策略(三数取中法和小区间优化)。归并排序同样基于分治思想,通过递归分解和有序合并实现排序,具有稳定O(N log N)的时间复杂度。两种算法各有优势:快速排序通常更快但最坏情况性能较差,归并排序稳定但需要额外空间。理解这些算法的原理和优化对处理大规模数据排序至关
2026-04-22 00:11:11
678
原创 数据结构:排序(上)---基础排序算法详解
本文介绍了排序算法的基本概念和分类,重点讲解了直接插入排序和希尔排序两种基础算法。直接插入排序通过逐个插入元素构建有序序列,时间复杂度为O(N²),适合小规模数据。希尔排序是其改进版本,引入增量分组进行预排序,再逐步缩小增量直至1,提高了排序效率。文章提供了详细的算法步骤、代码实现、执行示例和特点分析,并搭建了通用的测试框架用于验证算法正确性。两种算法各有优缺点,适用于不同场景,为后续学习更复杂排序算法奠定基础。
2026-04-22 00:09:04
645
1
原创 第十七届蓝桥杯C/C++软件赛C组算法题讲解
第十七届蓝桥杯省赛于 2026 年 4 月 11 日顺利举行,我参加的是 C/C++ 大学 C 组。C 组主要面向高职高专和普通本科初学者,整体难度相较 A、B 两组稍低,但题目设计依然注重对基础算法、数学思维和编程细节的考察。四小时的比赛时间说长不长、说短不短,要在有限的时间内完成读题、建模、编码和调试,对参赛者的基本功和心态都是不小的考验。赛后我花了一些时间重新梳理了全部题目,把自己当时的思路和更优的解法做了对比复盘。
2026-04-14 23:15:31
1740
7
原创 第十七届蓝桥杯C/C++软件赛B组算法题讲解
第十七届蓝桥杯省赛于 4 月 11 日结束,我参加的是 C/C++ 大学 B 组。四小时的比赛节奏紧凑,从结果填空到程序设计,每道题都需要在有限时间内完成理解、建模与编码,对心态和基本功都是不小的考验。赛后我花了一些时间重新梳理了全部题目,把自己当时的思路和更优的解法做了对比复盘。本文将按照题号顺序,逐一分享我对每道题的理解与实现,希望能给大家提供一些实用的参考,也欢迎在评论区一同讨论交流。30-35。
2026-04-14 21:10:26
1999
1
原创 备战蓝桥杯----C/C++组 (三) 基础算法讲解(上)
本博客开始讲解蓝桥杯软件赛C/C++组所需要的基本算法中的模拟高精度枚举前缀和以及差分算法。
2026-04-01 22:51:21
589
原创 备战蓝桥杯----C/C++组 (三)算法讲解前言
蓝桥杯软件赛作为国内颇具影响力的算法竞赛,越来越受到广大计算机学子的重视。无论是为了提升编程能力,还是为了在比赛中取得理想成绩,系统学习算法都是必不可少的一环。本系列博客将围绕算法竞赛中常见的基础算法展开,内容涵盖六大核心模块,力求做到原理清晰、模板规范、练习充分,帮助读者建立起扎实的算法基础。算法学习是一条需要耐心与坚持的路,但也是一条充满成就感的路。希望通过本系列博客,能帮助你建立起系统的算法知识体系,在蓝桥杯的赛场上从容应对,取得理想的成绩。
2026-04-01 21:42:19
430
原创 备战蓝桥杯----C/C++组 (一)数据结构与STL(终篇)—— 排序算法全解析
C++ 已经提供了sort函数,为什么还要花大量时间去学习排序算法?这个问题问得很有道理,但想法却有些片面。诚然,在实际做题和开发中,我们很少会手写快排或归并,直接调用sort就能搞定绝大多数排序需求。但是,排序算法的意义远不止于“排序”本身。算法最优最坏平均空间稳定性适用场景插入排序O(n)O(n²)O(n²)O(1)✅小规模数据,部分有序选择排序O(n²)O(n²)O(n²)O(1)❌交换成本高的场景冒泡排序O(n)O(n²)O(n²)O(1)✅。
2026-03-29 00:10:11
414
原创 备战蓝桥杯----C/C++组 (一)数据结构与STL讲解(下):树、二叉树、堆与优先级队列 —— 蓝桥杯备战必读
在数据结构的学习中,我们首先接触了线性结构——顺序表、链表、栈和队列,它们解决的是“一对一”的线性关系问题。然而,现实世界中的数据关系远不止如此简单。当我们面对文件系统的目录结构、家族谱系、比赛的对阵表,甚至是搜索引擎的索引时,一种“一对多”的关系便呼之欲出——这就是树形结构。树结构在算法竞赛中占据着举足轻重的地位。无论是二叉搜索树的高效查找,还是堆在优先队列中的精妙应用,都是我们解决复杂问题的基础工具。更重要的是,C++ STL 中的setmap以及它们的无序版本,底层正是由红黑树和哈希表支撑起来的。
2026-03-29 00:09:15
521
原创 备战蓝桥杯----C/C++组 (一)数据结构与STL讲解(中):树、二叉树与堆——从层次结构到优先队列的进阶之路
在上一篇文章中,我们学习了顺序表、链表、栈和队列——这些线性结构如同一根笔直的线条,数据之间只有“前驱”和“后继”两种关系。然而,现实世界中的数据关系远比这复杂得多。一个公司的组织架构,CEO下面有多个部门总监,每个总监下面又有多个经理…一个文件夹系统,根目录下有多个子文件夹,每个子文件夹又可以包含更多文件…一场比赛的对阵表,从总决赛不断向下拆分到各个小组…这些场景中,数据之间呈现的是一对多的层次关系——这正是树形结构所要解决的问题。
2026-03-21 22:58:31
754
原创 备战蓝桥杯----C/C++组 (一)数据结构与STL讲解(上):顺序表、链表、栈与队列——从手写到调用,一文搞懂四种线性结构
如何高效地组织和操作数据?无论你是在解决一道模拟题、搜索题,还是动态规划题,程序的核心往往都离不开对数据的存储、访问与修改。选择合适的数据结构,不仅能让代码更简洁,更可能直接决定算法能否在时间与空间限制下通过。可以说,数据结构是算法的基石,而STL(标准模板库)则是C++选手手中最锋利的武器。官方定义:数据结构是一种数据组织、管理和存储的格式。通俗理解:数据结构就是“数据的组织形式”——研究如何把数据存储在计算机中,以便高效地使用它们。算法是解决问题的清晰指令序列,将输入转化为输出。
2026-03-21 22:57:41
732
1
原创 备战蓝桥杯----C/C++组 (一)所需C++基础知识(下)
书接上文,本文继续讲解蓝桥杯编程竞赛所需的基本C++基础语法知识。在掌握基础语法后,进一步学习数组、字符串、函数、结构体等进阶内容,为算法竞赛打下坚实基础返回类型 函数名(参数列表) {// 函数体return 返回值;// 如果返回类型不是void// 示例:加法函数int math;int total;// 注意分号使用比较函数// 降序排序结构体int score;// 按成绩降序多关键字排序= b.total)// 先按总分降序// 再按语文降序else。
2026-03-01 23:56:53
1539
1
原创 备战蓝桥杯----C/C++组 (一)所需C++基础知识(上)
第十七届蓝桥杯软件赛C/C++组将于2026年4月11日举行,目前仅剩不到一个半月的时间来进行备战。那么我们需要准备些什么呢?跟着作者一起来进行探讨吧!我们首先应该具备的知识是C/C++的基础语法知识。在开始算法竞赛的征程前,我们首先要打好C++语法基础。无论是枚举、贪心还是动态规划,都需要扎实的语法功底作为支撑。本篇博客将带大家掌握C++最核心的基础语法知识,包括开发环境搭建、第一个程序、数据类型、输入输出、条件判断与循环等基础内容。上篇小结。
2026-03-01 23:56:09
2914
3
原创 数据结构与算法经典OJ题目详解(C语言):从快慢指针到栈的应用
在算法面试中,链表环检测和括号匹配是两道非常经典的题目。快慢指针和栈的应用。环形链表- 判断链表是否有环环形链表 II- 找到环的入口节点有效的括号- 判断括号字符串是否有效每道题都会提供多种解法,并用C语言实现,附带详细注释。通过这三道题,我们将掌握链表环问题的完整解决方案,以及栈这种数据结构在括号匹配中的应用。应用场景:链表环检测、找环入口、找中点时间复杂度:O(n)空间复杂度:O(1)关键点:快指针速度是慢指针的2倍。
2026-02-25 11:18:36
726
2
原创 数据结构(四)二叉树初步:计算机科学中的分叉树
树。而今天我们要聊的,是树家族中最重要、最基础的一员——二叉树。你可能会好奇:为什么偏偏是“二叉”?为什么不是三叉、四叉?这得从计算机的“思维方式”说起。计算机本质上是一个只会判断“是/否”、“真/假”、“大/小”的机器,它最擅长的事情就是二选一。就像走迷宫时面对岔路口,每次只需要决定向左还是向右——这种“二分”的思维模式,恰好与二叉树的结构完美契合。事实上,二叉树的诞生正是源于人类对“比较”和“排序”的需求。早在20世纪60年代,计算机科学家们就开始系统研究这种结构。
2026-02-25 11:18:05
1180
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅