首页 存档 技术 查看内容

程序员必须知道的10个算法和数据结构有哪些?

2018-3-30 13:00 |来自: 互联网 361 0

摘要: 这个问答贴来自 Quora。伯乐在线摘编现有的一些热门回答: 算法 图搜索 (广度优先、深度优先)深度优先特别重要 排序 动态规划 匹配算法和网络流算法 正则表达式和字符串匹配 数据结构 图 (树尤其重要) Map 堆 ...

这个问答贴来自 Quora。伯乐在线摘编现有的一些热门回答:

算法

  • 图搜索 (广度优先、深度优先)深度优先特别重要

  • 排序

  • 动态规划

  • 匹配算法和网络流算法

  • 正则表达式和字符串匹配

数据结构

  • 图 (树尤其重要)

  • Map

  • 栈/队列

  • Tries | 字典树

额外推荐

  • 贪婪算法

  • 概率方法

  • 近似算法

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

注:下面这个没有特定优先级

算法

  • 三路划分-快速排序

  • 合并排序(更具扩展性,复杂度类似快速排序)

  • DF/BF 搜索 (要知道使用场景)

  • Prim / Kruskal (最小生成树)

  • Dijkstra (最短路径算法)

  • 选择算法

数据结构

  • HashMap (真的要知道所有哈希结构)

  • 图和树(红黑树很好学) (red-black trees are good to learn)

  • 堆(优先级队列)

  • 栈/队列(必须知道的基础内容)

  • Tries | 字典树

A *和遗传算法也很有趣。

欢迎大家补充。

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

伯乐在线另补充一些相关文章:

  • 《统治世界的十大算法》

  • 《真正统治世界的十大算法》

  • 《视觉直观感受 7 种常用的排序算法》

  • 《可视化对比十多种排序算法(C#版)》

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

http://top.jobbole.com/14753/

// 点击“阅读原文”,可查看上面补充的相关文章


//////////////////////


向还不了解『程序员的那些事』微信的朋友介绍一下:这个账号是最热门的程序员(IT/互联网/移动互联网技术相关)微信公共账号之一。关注IT技术领域最新动态,由上百名资深的专业技术人员参与跟进国内、外技术热点和技术干货,分享行业内最有价值的开发工具和经验分享。欢迎关注。


微信号:【 iProgrammer

微信名:【 程序员的那些事

■提示:长按前面方括号中的微信号可复制,然后在查找公众账号时,长按输入框即可粘贴之前复制的微信号


■关注后,发送字母 m,查看以往推送的文章。

本文转载自:微信公众账号 - 程序员的那些事,版权归原作者所有!

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部