A repository for some classic algorithm, including:
1.Eratosthenes筛法,或另一种素数筛法
2.深度优先搜索
3.广度优先搜索
4.Dijkstra算法
5.Floyd–Warshall 算法
6.Either Kruskal算法 或称 Prim算法
7.一些拓扑排序的实现,比如使用DFS
8.凸包(我推荐单调链算法)
9.坐标压缩
10.Edmonds–Karp,或者Ford–Fulkerson方法的另一种实现;亦或预流推进算法;又或者,如果你在准备ACM codebook,那么就Dinic算法。(注意:最大流不允许出现在国际资讯赛中,尽管如此,它也可能会出现在国家队选拔赛中。)
http://blog.jobbole.com/tag/%e7%ae%97%e6%b3%95/
算法
图搜索 (广度优先、深度优先)深度优先特别重要 排序 动态规划 匹配算法和网络流算法 正则表达式和字符串匹配
数据结构
图 (树尤其重要) Map 堆 栈/队列 Tries | 字典树
额外推荐
贪婪算法 概率方法 近似算法
上面是 Arjun Nayini 的推荐,下面是 Ken George 的推荐
注:下面这个没有特定优先级
算法
三路划分-快速排序 合并排序(更具扩展性,复杂度类似快速排序) DF/BF 搜索 (要知道使用场景) Prim / Kruskal (最小生成树) Dijkstra (最短路径算法) 选择算法
数据结构
HashMap (真的要知道所有哈希结构) 图和树(红黑树很好学) (red-black trees are good to learn) 堆(优先级队列) 栈/队列(必须知道的基础内容) Tries | 字典树
A *和遗传算法也很有趣。
伯乐在线另补充一些相关文章:
http://top.jobbole.com/14753/ // 点击“阅读原文”,可查看上面补充的相关文章