← Back
计算题 (5
Introduction to Algorithms 算法导论
重点
第一章 What is Algorithm
- 算法的概念
- 算法定义中的 5 个性质: 输入, 输出, 确定性, 有穷性, 有效性
第二章 算法设计与分析基础
- 如何做算法设计, 算法分析
- 基本思想
- 具体过程
- 伪代码
- 时空间复杂度
- 需要问题具有的性质
- 典型例子
- 复杂度不确定: 条件判断情况
- 最好情况, 平均情况, 最坏情况
- 递推表达式
- 归并排序
第三章 Asymptotic Notation & Analysis 渐进记号与渐进分析
- 渐进记号, 渐进分析: n 趋于无穷情况的复杂度
- f(x) = O(…) 其实表示”属于”
- 渐进记号写在左边和写在右边的区别 Asymptotic Notation Tips
第四章 递归表达式求解 & 分治策略
- 递归表达式的求解
- 分治策略
- 基本思想, 具体过程, 伪代码, 时空间复杂度
- 需要具有最优子结构
- 典型例子
第六章 Heap Sort 堆排序
第七章 Quick Sort 快速排序
- 为什么快速排序时间复杂度为 O(n²) 仍然可以称为”快速”
第八章 Linear Time Sort 线性时间排序
- 计数排序和基数排序重要, 桶排序了解
- 计数排序: 非线性时间的条件 Counting Sort 计数排序
- 基数排序: Radix Sort 基数排序
- 概念: 稳定排序, 置换排序
第九章 顺序统计
- 顺序统计的概念
- 同时找出最小值和最大值, 需要多少次比较
- 期望为线性时间的选择算法 Quick Select 快速选择
- 最坏情况为线性时间的选择算法 BFPRT - Median of Medians BFPRT选择算法
第十一章 散列表
- 散列函数如何设计
- Direct Access Table
- 开放地址法, 探查序列
- 全域散列 important
- 完美散列
第十二章 Binary Search Tree 二叉搜索树
- 所有二叉搜索树的操作时间复杂度为 O(log n)
- 前驱, 后继
第十三章 Red-Black Tree 红黑树
- 删除略作了解, 其他重要
第十四章 数据结构的扩张
- 基本步骤
- 选择基础数据结构
- 添加属性, 基于何种原则
- 基本操作如何维护新属性
- 根据新属性开发新算法解决实际问题
第十五章 Dynamic Programming 动态规划 important
- 基本思想
- 具体过程
- 伪代码
- 时空间复杂度
- 需要问题具有的性质: 最优子结构 && 重叠子问题
- 典型例子
- 自顶向下 || 自底向上
第十六章 Greedy Algorithm 贪心算法
- Minimum Spanning Tree 最小生成树
- Shortest Path 最短路径
- 什么情况不存在最短路径
- DJ 和 BF 的区别与联系
- 差分约束
- Activity Selection 活动选择问题
第二十六章 Network Flow 网络流
- 源与汇的概念
- 边的容量
- 流 <= 容量
- 流入 == 流出
- 割的概念: 割出来的两个集合, 其中一个包含源, 另一个包含汇
- 如何求最大流
- 找增广路径
- 引入残流图
- 给定一个网络, 如何画残流图
- Ford-Fulkerson Algorithm 福特福克森算法
- 割的容量
- 割的流量
- 找增广路径
解空间树
- Branch and Bound 分支限界法
- Backtracking 回溯法
- 什么是解空间树?
题型
判断题 (10 × 1 = 10 分)
- 插入排序在最坏情况的时间复杂度
- 堆排序是最优的比较排序算法
- Dijkstra 算法是一种贪心算法
- 任何基数排序算法都是线性时间算法
填空题 (10 × 1 = 10 分)
- 空间树常规分为哪两种树: 子集树, 排列树
- 回溯法
- DP 需要问题具备的性质
- 散列的方法: 开放地址法和直接寻址和
- 最少需要多少次比较
简答题 (4 × 5 = 20 分)
- 某种算法策略的基本思想, 解题步骤…
- 分治, DP, 贪心, …
- DP 解题步骤, 常见方法
- 什么是简单一次散列, 什么是完美散列…
计算题 (56 题 × 1012 分 = 60 分)
- 求解递归表达式
- 递归树
- 主方法
- 代入法
- 经典问题: MCM, LCS 等
- 分析
- 伪代码
- 时空间复杂度
- 递归表达式
知识点导航
Divide & Conquer 分治
Sorting Algorithms 排序算法
Order Statistic 顺序统计量
Hashing I 哈希
Binary Search Tree 二叉搜索树
Red-Black Tree 红黑树
Dynamic Programming 动态规划
- Longest Common Subsequence (LCS) 最长公共子序列 — 自顶向下
- Matrix Chain Multiplication (MCM) 矩阵连乘 — 自底向上
- 0-1 Knapsack Problem 0-1背包 DP
Greedy Algorithm 贪心算法
Greedy 和 DP 都有最优子结构 (同); Greedy 是自顶向下, DP 可上可下 (异).