Agreement:为了避免争议,专业名词会尽可能使用英文,翻译供辅助参考
在进行算法学习前,我想要先明确一下算法与数据结构之间的关系:
- 数据结构是为算法服务的
- 算法是需要建立在特定的数据结构之上的
所以,如果你还没有学过数据结构,我希望你能够先参考一下: Go 数据结构
同时,本算法模块将全程使用 Go 语言实现,如果你对 Go 的掌握程度还不够自信,也可以参考一下: Go 基础
接下来,我会假设你已经有了一定的数据结构基础和 Go 编程基础
不过,在详细介绍算法之前,我认为还有一样十分重要的内容需要明确:
-
对于算法方面的研究,复杂的数学推理和证明是非常重要的,但是,本算法模块可能并不太适用于这类需求
-
本算法模块不会过度关注数学性的推导,而是由浅入深,逐步分析不同算法的具体的环境,给予最直观的感受
因此,请放心,接下来的内容不需要过于强悍的数学基础
文中涉及到的算法将会一一列举在这里,你可以使用 go test 命令进行测试
-
Analysis of Complexion - 复杂度分析
- Go - 复杂度分析的意义
- Go - 大 O 复杂度表示法
- Go - 时间复杂度分析
- Go - 空间复杂度分析
- Go - 常见的复杂度量级
-
- Go - 什么是递归?
- Go - 递归的三个条件
- Go - 递归的注意事项
-
- Go - 排序算法的指标
- Go - 排序算法的分类
-
- Go - 哈希算法的定义
- Go - 哈希算法的特征
- Go - 哈希算法的应用
-
- Go - 贪心算法的通常适用场景
- Go - 贪心算法的核心思想
- Go - 贪心算法与最优解的关系
- Go - 贪心算法的应用
-
- Go - 分治算法的三个步骤
- Go - 分治算法的条件
- Go - 分治算法的应用
- Go - 经典的八皇后问题 - Go - 回溯的核心思想 - Go - 回溯算法的应用
- Go - 动态规划的通用模型
- Go - 动态规划的三个特征
- Go - 动态规划的两种方法
- Go - 动态规划的应用