程序员必须知道的10个算法和数据结构?(转自伯乐在线)

 

Arjun Nayini的推荐

算法

  • 1、图搜索 (广度优先、深度优先)深度优先特别重要
  • 2、排序
  • 3、动态规划
  • 4、匹配算法和网络流算法
  • 5、正则表达式和字符串匹配

数据结构

  • 1、图(树尤其重要)
  • 2、Map
  • 3、栈/队列
  • 5、Tries | 字典树

额外推荐

  • 贪婪算法
  • 概率方法
  • 近似算法

Ken George的推荐

算法

  • 三路划分-快速排序
  • 合并排序(更具扩展性,复杂度类似快速排序)
  • DF/BF搜索(要知道使用场景)
  • Prim/Kruskal(最小生成树)
  • Dijkstra(最短路径算法)

数据结构

  • HashMap(真的要知道所有的哈希结构)
  • 图和树(红黑树很好学)
  • 堆(优先级队列)
  • 栈/队列
  • Tries | 字典树
  • A*和遗传算法也很有趣