跳转至

数据结构与算法

这里整理数据组织方式、算法原理、复杂度分析和实现过程。学习时围绕具体问题,比较不同方案的正确性、时间成本和空间成本。

本栏目将基础知识与 LeetCode 题解放在一起:从“学习总览”查找知识点,再进入“LeetCode 题解”按专题练习,也可以通过下面的主题索引直接访问相关题目。

思维导图

--- markmap: height: 560 initialExpandLevel: 2 autoFit: true colorFreezeLevel: 2 maxWidth: 280 spacingHorizontal: 80 spacingVertical: 12 nodeMinHeight: 24 paddingX: 10 --- # 数据结构与算法 ## [算法](/software-design/05-algorithms/#algorithms) - 时间与空间复杂度 - 查找与排序 - 分治、贪心、动态规划、回溯 ## [数据结构](/software-design/04-data-structures/#structures) - 数组、链表、栈与队列 - 树、二叉树、查找树 - 图的存储、遍历与最小生成树

主题索引

以下是逐步整理的主题范围,具体知识点笔记随学习补充。

主题 学习重点 已有练习与笔记
复杂度分析 输入规模、时间与空间复杂度、最好与最坏情况、均摊分析 结合每种算法的实现分析
数组与链表 存储方式、访问、插入和删除的成本 数组、链表
栈与队列 后进先出、先进先出、操作约束和应用场景 队列与栈
哈希表 哈希函数、冲突处理、装载因子 哈希表
树与图 表示方式、遍历、搜索、路径问题 树
排序与查找 排序过程、稳定性、二分查找及边界处理 排序、二分查找
递归与回溯 递归关系、终止条件、搜索树、剪枝 递归、回溯
动态规划与贪心 状态、转移、最优子结构、局部决策成立的条件 动态规划

入门材料

具体笔记怎样整理

每个知识点记录:要解决的问题、核心思路、手推过程或代码、正确性理由、复杂度、边界情况和关联练习。比较两种解法时,写清各自需要的前提。

当前软件设计师复习的知识导图集中在数据结构和算法基础。本栏目统一提供知识总览和 LeetCode 题解入口,后续完整课程可以另建课程目录。