这个问答贴来自 Quora。伯乐在线摘编现有的一些热门回答:
算法
- 图搜索 (广度优先、深度优先)深度优先特别重要
- 排序
- 动态规划
- 匹配算法和网络流算法
- 正则表达式和字符串匹配
数据结构
- 图 (树尤其重要)
- Map
- 堆
- 栈/队列
- Tries | 字典树
额外推荐
- 贪婪算法
- 概率方法
- 近似算法
上面是 Arjun Nayini 的推荐,下面是 Ken George 的推荐
注:下面这个没有特定优先级
算法:
- 三路划分-快速排序
- 合并排序(更具扩展性,复杂度类似快速排序)
- DF/BF 搜索 (要知道使用场景)
- Prim / Kruskal (最小生成树)
- Dijkstra (最短路径算法)
- 选择算法
数据结构
- HashMap (真的要知道所有哈希结构)
- 图和树(红黑树很好学) (red-black trees are good to learn)
- 堆(优先级队列)
- 栈/队列(必须知道的基础内容)
- Tries | 字典树
A *和遗传算法也很有趣。
欢迎大家补充。
-------------------------------------
伯乐在线另补充一些相关文章:
-------------------------------------