基本的算法和数据结构 注:本文部分译自 Swift Algorithm Club。 所有的代码都是兼容 Swift 4 的。如果 Swift 有更新,我也会及时跟进。 复杂度 大O表示法-复杂度的常用表示法 数据结构 队列 栈-后进先出! 队列-先进先出! 双端队列-两端都可以进出 优先队列-一个保持最重要的元素总是在最前面的队列。 链表 链表- 链接起来的数据序列,先进后出 树 树-通用的树形结构 二叉树-二叉树 哈希 哈希-允许你通过键值对来存取数据。字典通常都是基于哈希表实现的 图 图-通用的图形数据结构 排序算法 冒泡排序-性能最差的排序方法 插入排序 归并排序 快速排序 搜索算法 二分搜索 二叉树搜索 广度优先搜索 深度优先搜索 缓存算法 缓存淘汰算法 动态规划 矩阵最大值 贪心算法 找钱问题