Skip to content

Algorithm

1 算法引论

Introduction to Algorithm

  • 程序 = 算法 + 数据结构

  • 将数据结构与算法类比为拼装积木。 数据结构就是积木的形状和数量, 算法就是拼积木的步骤。

  • 辗转相除法

1.1 复杂度分析

Complexity analysis

  • 执行次数
  • Big-O

1.2 迭代与递归

Iteration and Recursion

  • 改进:保留中间结果

数据结构

数组与链表

栈与队列

哈希表

二叉树遍历

  • 中根次序遍历,左中右
  • 先根次序遍历,中左右
  • 后根次序遍历,左右中

图的遍历

访问顺序是放入,检测顺序是弹出, - 广度优先遍历 (BFS),队列,广度优先 - 深度优先遍历 (DFS),递归,栈,深度优先 - 深度检索 (D_Search),改造 BFS ,栈,广度优先

对策树

α-β 剪枝,求 max 是 α 值,求 min 是 β 值, max 下是 β 截断, min 下是 α 截断。 左根右。

搜索

排序

分治

二分搜索

归并排序

奇数情况,划分之后奇数在前。

快速排序

左边指针先移动,前后指针交叉之后,将中枢元素与后指针所在位置交换。

棋盘覆盖问题

在划分之后无特殊顶点的子棋盘靠近中心的地方放一个 L 型骨牌。

贪心

度量标准。

背包问题(部分可装入)

带有期限的作业排序

最优归并模式

哈夫曼编码。

最小生成树

Prim 算法

Kruskal 算法

破圈法

单源最短路径

动态规划

  • 重复子问题
  • 从底向顶
  • 数组,滚动数组

多段图问题

每对结点之间的最短路径

Floyd 算法

最优二分检索树 ???

0-1 背包

回溯

八皇后问题

See Also