程序員必須知道的10個算法和數據結構有哪些?

這個問答貼來自 Quora。伯樂在線摘編現有的一些熱門回答:

算法

  1. 圖搜索 (廣度優先、深度優先)深度優先特別重要
  2. 排序
  3. 動態規劃
  4. 匹配算法和網絡流算法
  5. 正則表達式和字符串匹配

數據結構

  1. 圖 (樹尤其重要)
  2. Map
  3. 棧/隊列
  4. Tries | 字典樹

額外推薦

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

 

上面是 Arjun Nayini 的推薦,下面是 Ken George 的推薦

注:下面這個沒有特定優先級

算法:

  • 三路劃分-快速排序
  • 合併排序(更具擴展性,複雜度類似快速排序)
  • DF/BF 搜索 (要知道使用場景)
  • Prim  / Kruskal (最小生成樹)
  • Dijkstra (最短路徑算法)
  • 選擇算法

數據結構

  • HashMap (真的要知道所有哈希結構)
  • 圖和樹(紅黑樹很好學) (red-black trees are good to learn)
  • 堆(優先級隊列)
  • 棧/隊列(必須知道的基礎內容)
  • Tries | 字典樹

A *和遺傳算法也很有趣。

歡迎大家補充。
-------------------------------------

伯樂在線另補充一些相關文章:

-------------------------------------

發佈了8 篇原創文章 · 獲贊 69 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章