数据结构与算法¶
这里整理数据组织方式、算法原理、复杂度分析和实现过程。学习时围绕具体问题,比较不同方案的正确性、时间成本和空间成本。
本栏目将基础知识与 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)
- 数组、链表、栈与队列
- 树、二叉树、查找树
- 图的存储、遍历与最小生成树
主题索引¶
以下是逐步整理的主题范围,具体知识点笔记随学习补充。
| 主题 | 学习重点 | 已有练习与笔记 |
|---|---|---|
| 复杂度分析 | 输入规模、时间与空间复杂度、最好与最坏情况、均摊分析 | 结合每种算法的实现分析 |
| 数组与链表 | 存储方式、访问、插入和删除的成本 | 数组、链表 |
| 栈与队列 | 后进先出、先进先出、操作约束和应用场景 | 队列与栈 |
| 哈希表 | 哈希函数、冲突处理、装载因子 | 哈希表 |
| 树与图 | 表示方式、遍历、搜索、路径问题 | 树 |
| 排序与查找 | 排序过程、稳定性、二分查找及边界处理 | 排序、二分查找 |
| 递归与回溯 | 递归关系、终止条件、搜索树、剪枝 | 递归、回溯 |
| 动态规划与贪心 | 状态、转移、最优子结构、局部决策成立的条件 | 动态规划 |
入门材料¶
- 《计算机科学速成课》:第 13–14 集建立算法与数据结构的直觉,第 21 集可用于理解哈夫曼编码。
- LeetCode 题解与学习资源:在本栏目的“LeetCode 题解”导航中,按数组、链表、树、动态规划等专题查找具体实现与解法。
- 数学笔记:补充分析算法时用到的数学基础。
具体笔记怎样整理¶
每个知识点记录:要解决的问题、核心思路、手推过程或代码、正确性理由、复杂度、边界情况和关联练习。比较两种解法时,写清各自需要的前提。
当前软件设计师复习的知识导图集中在数据结构和算法基础。本栏目统一提供知识总览和 LeetCode 题解入口,后续完整课程可以另建课程目录。