- 博客(11)
- 问答 (1)
- 收藏
- 关注
原创 B树与B+树概述
摘要 B树和B+树是用于大规模数据存储的多路平衡查找树结构。B树通过减少树高度提升磁盘查询效率,其特点包括节点多关键字、特定阶数要求及平衡性。B树操作包含复杂的分裂与合并机制,插入采用主动拆分避免级联效应,删除则需处理节点下溢问题。B+树在B树基础上改进,非叶节点仅存键值,数据全存于叶节点并用链表连接,提升范围查询效率,成为数据库索引的主流结构。两者通过不同设计平衡了存储效率与查询性能,适用于磁盘存储的大数据场景。
2025-11-05 16:52:24
529
原创 红黑树概述及插入删除逻辑
红黑树是一种自平衡二叉搜索树,通过颜色约束和旋转操作保持平衡。其核心性质包括节点非黑即红、根节点黑色、红色节点子节点必须黑色、各路径黑高相同等。插入时先着红,再根据叔叔节点颜色调整;删除时处理双黑节点情况,通过旋转和着色维持平衡。红黑树广泛应用于C++ STL的map/set等容器,相较于AVL树降低了旋转频率,在动态操作中性能更优。其平衡策略结合了颜色管理和旋转操作,实现了高效的动态数据管理。
2025-11-04 22:02:10
543
原创 二叉平衡树的插入与删除
本文介绍了二叉平衡树的概念及其实现方式。主要内容包括:1)平衡二叉树的引入原因,即在二叉搜索树基础上增加高度约束,通过平衡因子(左右子树高度差绝对值≤1)维持平衡;2)失衡的四种形式(LL, RR, LR, RL)及其调整方法,通过旋转操作重新平衡;3)具体实现方案,包括节点结构、旋转操作(左旋/右旋)的算法实现,以及插入和删除操作的处理流程。插入时需要递归查找位置并在回溯过程中检查平衡因子,删除时需考虑节点度数情况。该数据结构通过自动平衡机制保证查找效率始终维持在O(log n)。
2025-10-30 22:43:45
392
原创 二叉搜索树的插入和删除
二叉搜索树(BST)是一种基础数据结构,其特点是左子节点值小于父节点,右子节点值大于父节点。BST的中序遍历结果是有序序列。文章介绍了BST的插入和删除操作:插入时递归比较节点值确定位置;删除时分三种情况处理:度为0直接删除,度为1用子节点替换,度为2则通过前驱/后继节点转换后删除。文中提供了C++代码实现,包括创建节点、插入、查找前驱节点和删除等核心操作。BST虽然工程应用较少,但作为理论学习基础具有重要意义。
2025-10-30 16:48:27
275
原创 关于复杂度分析的讨论
本文介绍了算法评估的两个关键指标:时间复杂度和空间复杂度。时间复杂度衡量算法运行时间,按增长率从优到劣排序为O(1)、O(log₂n)、O(n)等。计算时需找出基本语句(通常是内层循环),统计执行次数的数量级并简化。空间复杂度衡量内存需求,常见类型包括O(1)、O(log₂n)和O(n)。文章还提供了实用的分析方法:对单层循环找终止条件,对嵌套循环计算内外层执行次数的乘积。通过例题展示了如何计算循环执行次数,并附有思考题解析。
2025-10-29 20:14:24
310
原创 二叉树的线索化和实现
摘要:线索二叉树通过利用空指针域存储节点前驱和后继信息,优化了中序遍历效率。线索化过程采用递归方法,在遍历时设置节点的lTag和rTag标志位,将左/右指针指向中序前驱/后继节点。线索化后的遍历无需递归或栈支持,直接通过标志位快速定位后继节点,极大地提升了遍历速度。该结构在保持二叉树原有特性的同时,有效利用空指针空间,实现了高效的中序遍历操作。
2025-10-28 22:15:09
800
原创 串和KMP
本文介绍了两种字符串匹配算法:暴力匹配和KMP算法。暴力匹配通过逐个比较字符实现,时间复杂度为O(mn)。KMP算法利用next数组优化,只回溯模式串,时间复杂度更优。next数组记录模式串失配时应回退的位置,通过动态维护前后缀匹配长度j来高效计算。代码实现展示了如何构建next数组并利用其进行快速匹配。KMP的核心思想是复用已计算的前后缀信息,避免重复比较,实现了线性时间的模式匹配。
2025-10-28 16:13:46
705
原创 Makefile详解
文章摘要: 本文详细介绍了Makefile的工作原理与应用场景。首先阐述了程序的编译(生成.o/.obj文件)与链接(生成可执行文件)过程,对比了Linux(.o/.a)和Windows(.obj/.lib)的文件差异。进而说明Makefile通过依赖关系自动管理编译流程,类比为"建筑施工图",而CMake则是跨平台的"施工图生成器",能根据系统自动生成Makefile或IDE工程文件。文章还讲解了Makefile的核心要素:规则语法、变量使用、伪目标(.PHONY)
2025-10-28 11:16:58
929
原创 YSU人工智能导论课程笔记
本文系统梳理了机器学习与深度学习的关键知识点。主要内容包括:1)机器学习核心概念(模型、学习准则、优化方法);2)基础数据处理技术(One-Hot编码、特征工程);3)典型算法(KNN、神经网络)及其评价指标;4)Python编程基础与NumPy、PyTorch等工具使用;5)深度学习网络架构(DNN、CNN、RNN)及其组件(激活函数、池化层等);6)注意力机制等前沿技术。文章通过概念定义、数学公式和代码示例,完整呈现了从数据预处理到模型构建的完整流程,并对比了不同算法的特性与适用场景,为机器学习实践提供
2025-10-24 21:27:28
660
原创 ROS2学习(建图与定位)
采集→ LiDAR/深度相机/IMU预处理→ 坐标变换 + 滤波位姿估计→ 当前帧与历史帧匹配累积更新→ 添加到地图优化→ 闭环检测修正偏差最终得到的就是点云地图或栅格地图,可以用于导航和路径规划。明白,你想看的是建图(Mapping)和定位(Localization)在 ROS2 框架下的模块级协调,以及各模块之间是怎么调用的。我们可以从整体架构、数据流、ROS2 机制和调用方式来分析。协调方式说明Topic 异步发布订阅建图输出/map→ 定位订阅/map,解耦模块TF 坐标变换。
2025-10-13 17:01:10
740
原创 ROS2学习(导航流程)
RViz 实际发送 Action 请求 到 接口2. Launch 系统启动各类服务器节点(Server)2.1 顶层入口通常是:💡 会逐层 Include 多个 launch 文件:📌 示例结构(navigation_launch.py):3. YAML 配置的作用(指定插件,而不是逻辑流程)📄 示意:4. bt_navigator 读取 XML 并建立行为树YAML 中绑定 XML 文件路径:XML 示意:
2025-10-09 17:18:38
524
空空如也
建筑学转专业计算机科学与技术相关问题
2024-09-02
pycharm汉化问题不太理解
2024-08-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅