【一周一算法】第三周: 归并排序 · 思考题与练习详解🧠 归并排序 · 思考题与练习详解 “理解递归的最好方式,就是亲手画出递归树;理解合并的最好方式,就是亲手实现链表版本。” 🧩 思考题一:链表上的归并排序 ❓ 问题 为什么归并排序在链表排序中表现非常优秀? 💡 详解 核心答案:因为链表的合并操作可以在 O(1)O(1)O(1) 的额外空间内完成,避免了数组版本中 O(n)O(n)O(n) 的空间开销。 让我们通过代码对比来理解: 🔹 2025-10-27 一周一算法 #算法 #C++ #教程 #归并算法
【一周一算法】第三周:归并排序🧮 一周一个算法 · 第 3 周 归并排序(Merge Sort)——分治思想的第一次登场 “Divide and Conquer” —— 分而治之,算法的灵魂。 归并排序不仅是高效排序算法的代表,更是理解递归、复杂度分析与算法分层结构的最佳入口。 🧭 一、引言:如何让"排序"并行起来? 假设你要给一副 1000 张的扑克牌排序。 最直观的想法是一个人从头到尾慢慢排好 2025-10-27 一周一算法 #算法 #C++ #归并排序
《FreeRTOS 全栈工程实战教程》第2.2篇:ESP32 环境搭建 (ESP-IDF + VSCode) 完整指南《FreeRTOS 全栈工程实战教程》第2.2篇:ESP32 环境搭建 (ESP-IDF + VSCode) 完整指南 副标题:从“集成开发环境”到“可扩展 SDK”,体验现代 IoT 工作流 ⭐ 难度等级:★☆☆ 基础 标签:FreeRTOS, ESP32, ESP-IDF, VSCode, 环境搭建, IoT, CLI 📍 实战问题场景 欢迎来到 ESP32 的世界!如果你是(或曾经是)一个 2025-10-25 FreeRTOS 全栈工程实战教程 #FreeRTOS #ESP32 #环境搭建 #ESP-IDF #VSCode #IoT #CLI
《FreeRTOS 全栈工程实战教程》第2.1篇:STM32 环境搭建 (CubeMX + Keil) 与工程烧录全流程《FreeRTOS 全栈工程实战教程》第2.1篇:STM32 环境搭建 (CubeMX + Keil) 与工程烧录全流程 ⭐ 难度等级:★☆☆ 基础 标签:FreeRTOS, STM32, CubeMX, Keil, HAL, 环境搭建, ST-Link 📍 实战问题场景 在第0篇中,我们准备好了所有的“原材料”(硬件板卡、软件工具)。现在,我们面临着第一个“工程”问题: “我如何将这些独立的 2025-10-25 FreeRTOS 全栈工程实战教程 #STM32 #FreeRTOS #环境搭建 #CubeMX #Keil #HAL #ST-Link
《FreeRTOS 全栈工程实战教程》第1篇:什么是 FreeRTOS?适用场景与架构总览《FreeRTOS 全栈工程实战教程》第1篇:什么是 FreeRTOS?适用场景与架构总览 副标题:告别 while(1) 裸奔时代,理解 RTOS 核心价值 ⭐ 难度等级:★☆☆ 基础 标签:FreeRTOS, RTOS, 裸机, Kernel, Scheduler, 架构, 并发 📍 实战问题场景 假设你正在开发一个“智能环境采集盒”。需求很简单: 每 2 秒钟,通过 I2C 读取一次 B 2025-10-25 FreeRTOS 全栈工程实战教程 #FreeRTOS #RTOS #裸机 #Kernel #Scheduler #架构 #并发
《FreeRTOS 全栈工程实战教程》第0篇:万丈高楼平地起 —— 双平台硬件/软件工具链检查清单《FreeRTOS 全栈工程实战教程》第0篇:万丈高楼平地起 —— 双平台硬件/软件工具链检查清单 ⭐ 难度等级:★☆☆ 基础 标签:FreeRTOS, STM32, ESP32, 环境搭建, CubeMX, ESP-IDF, Keil, VSCode 📍 实战问题场景 欢迎来到《FreeRTOS 全栈工程实战教程》!这是一个旨在带你从 0 到量产,用一年时间真正“吃透” FreeRTOS 的系 2025-10-25 FreeRTOS 全栈工程实战教程 #STM32 #FreeRTOS #ESP32 #环境搭建 #CubeMX #ESP-IDF #Keil #VSCode
【一周一算法】第二周:选择排序与插入排序 · 思考题与练习详解🧠 选择排序与插入排序 · 思考题与练习详解 “理解一个算法的最好方式,就是深入思考它的边界情况和优化可能。” 🧩 思考题一:选择排序的"固执"特性 ❓ 问题 为什么选择排序即使数组已排序也不会提前终止? 💡 详解 选择排序的核心逻辑决定了它的"固执"特性: 123456789101112131415void selectionSort(std: 2025-10-24 一周一算法 #算法 #C++ #详解 #选择排序 #插入排序
【一周一算法】第二周:选择排序与插入排序🧮 一周一个算法 · 第 2 周 选择排序与插入排序 —— 从“挑选”与“插入”看排序的两种哲学 “冒泡排序靠交换相邻元素逐步推进, 选择排序靠挑选最值一步到位, 插入排序靠不断调整插入位置, —— 三者合称:排序算法的三剑客。” 🧭 一、引言:为什么还要研究 O(n2)O(n^2)O(n2) 算法? 很多人觉得这些算法“太简单”或“太慢”,但实际上—— 它们是后续所有排序算法的核心雏形 2025-10-21 一周一算法 #算法 #C++ #选择排序 #插入排序
【一周一算法】第一周:冒泡排序思考与练习详解冒泡排序思考与练习详解 🧠 思考题解答 1. 如果要对 10000 个元素排序,冒泡排序大约需要比较多少次? 解答: 根据冒泡排序的数学原理,最坏情况下(完全逆序)的比较次数为: n(n−1)2=10000×99992=49,995,000 次\frac{n(n-1)}{2} = \frac{10000 \times 9999}{2} = 49,995,000 \text{ 次} 2n(n−1) 2025-10-18 一周一算法 #C++ #算法解答 #冒泡算法
【一周一算法】第一周:冒泡算法🧮 一周一个算法 · 第 1 周 冒泡排序(Bubble Sort)——最温柔的排序算法 “算法世界的 Hello World” —— 从冒泡排序开始,理解算法的核心:有序化的思想 + 复杂度的度量 🧭 一、算法引入:从“气泡上浮”说起 想象你有一列数字,它们像一串气泡。 每次比较相邻的两个,如果前一个更“大”,那它就“上浮”到后面。 经过一轮比较,最大的数就会被“冒泡”到最末尾。 重复 2025-10-18 一周一算法 #算法 #C++ #冒泡算法