ACM需要掌握的知识

http://yulingui.blog.ccidnet.com/blog-htm-do-showone-uid-128985-type-blog-itemid-310938.html

 

ACM需要掌握的知识
对ACM竞赛的算法大概分了一下类,分成了数学、数据结构和算法三大块。

一 数学(Mathematics)

1 离散数学(Discrete Mathematics)

1.1 图论(Graph Theory)

图的遍历(Graph Traversal): DFS, BFS

最小生成树(Minimum Spanning Tree): Prim, Kruskal

最短路径(Shortest Path): Dijkstra, Floyd

传递闭包(Transitive Closure)

关节点(Articulation Point - UndiGraph)

拓扑排序(Topological Sort - AOV-Network)

关键路径(Critical Path - AOE-Network)

回路问题: 欧拉路(Euler Path), 汉密尔顿回路(Hamilton Tour)

差分约束(Difference Constraints): Bellman-Ford

二部图匹配(Bipartite Matching)

网络流(Network Flow)

...

1.2 组合数学(Combinatorics)

2 数论(Number Theory)

2.1 素数: GCD, LCM...

2.2 同余

3 计算几何(Computational Geometry)

线段相交, 多边形面积, 内点外点的判断, 凸包(Convex Hull), 重心(Bary Center)...

4 线性代数

矩阵(Matrix), 线性方程组(Linear Equations)...

5 概率论

6 初等数学与解析几何

7 高等数学

点积(Dot Product), 差积(Cross Product), 积分(Integral), 微分(Differential)...

二 数据结构(Data Structure)

1 线性结构

线性表(Linear List)

栈(Stack), 队列(Queue)

数组(Array), 串(String), 广义表(General List)

2 非线性结构

树(Tree)

堆(Heap)

图(Graph)

3 排序

3.1 插入排序

直接插入排序(Insert Sort) O(n^2)

折半插入排序(Binary Insert Sort)

希尔排序(Shell Sort)

3.2 交换排序

冒泡排序(Bubble Sort) O(n^2)

快速排序(Quick Sort)?? O(nlogn)

3.3 选择排序

直接选择排序(Select Sort) O(n^2)

锦标赛排序(Tournament Sort) O(nlogn)

堆排序(Heap Sort) O(nlogn)

3.4 归并排序(Merge Sort) O(nlogn)

3.5 基数排序(Radix Sort) O(d(n+radix))

4 查找

4.1 二分(Binary Search)

4.2 树型

二叉搜索树(Binary Search Tree)

平衡搜索树(AVL Tree)

并查集(Union-Find Set)

4.3 哈希(Hashing)

三 算法(Algorithm)

1 模拟算法

2 搜索算法

2.1 枚举搜索(Enumeration)

2.2 深度优先(Depth First Search)

2.3 广度优先(Breadth First Search)

2.4 启发式搜索(Heuristic Search)

3 以“相似或相同子问题”为核心的算法

3.1 递推

3.2 递归(Recursion)

3.3 贪心法(Greedy)

3.4 动态规划(Dynamic Programming)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值