每个开发人员都应该学习的 10 种算法

文章目录

      • 1.二分查找
      • 2. 选择、冒泡和插入排序
      • 3. 快速排序和合并排序
      • 4. 霍夫曼编码
      • 5.广度优先搜索
      • 6. 深度优先搜索
      • 7.梯度下降
      • 8. Dijkstra 算法
      • 9. Diffie-Hellman 密钥交换
      • 10.做练习题

许多有抱负的开发人员似乎有一个很大的误解,即记住标准算法很重要。现在对于一些工作面试可能是这样,但对于真正成为一名成功的开发人员来说并不是特别重要。

那么你在算法课上学的东西就没有用了吗对不。非常重要的是算法思考的能力。不仅是为了让您可以重现和祭坛标准算法,而且是为了让您能够轻松地使用代码来解决您作为开发人员遇到的任何问题。
这就是为什么我们汇总了 10 种算法列表,有抱负的开发人员应该通过这些算法来熟悉算法思维。


1.二分查找

二进制搜索是任何计算机科学课程中首先教授的内容之一。这可能是最简单的例子,说明一点点独创性如何使事情变得更加高效。
二进制搜索包括获取一个已排序的数组,并迭代地将数组分成两部分,然后将要查找的元素与每一半进行比较,直到找到该元素。

2. 选择、冒泡和插入排序

排序算法是开发人员应该拥有的最基本的工具之一。选择、冒泡和插入排序是新开发人员应该首先解决的一些问题。在速度很重要的任何情况下,您都不会使用这些算法,但使用它们是对数组遍历和操作的一个很好的介绍。

3. 快速排序和合并排序

与 #2 类似,排序算法非常适合熟悉数组,但 Quicksort 和 Mergesort 的效率足以在严肃的应用程序中使用。舒适地实现这些排序算法(注意“舒适”而不是“记忆”)这些算法对于成为一名认真的开发人员至关重要。

4. 霍夫曼编码

霍夫曼编码是现代文本压缩的基础。它通过考虑不同字符在文本中出现的频率来工作,并根据该频率将它们组织在树中。

每个开发人员都应该学习的 10 种算法

6. 深度优先搜索

继续树遍历,深度优先搜索是在树中查找元素的另一种主要方法。它不是逐层逐级向下工作,而是逐个分支探索树分支。

现在假设它没有无限扩展的分支,DFS 将同样始终有效。实现这两种搜索算法并不是特别复杂,但非常重要的是学习何时使用其中一种。许多软件设计能够理解您正在使用的信息的结构,并选择针对该结构进行优化的算法。

每个开发人员都应该学习的 10 种算法

8. Dijkstra 算法

开发人员处理的另一个非常重要的问题是寻路。图表被证明是一种非常通用的方式来描述涉及不同对象网络的各种问题。

Dijkstra 算法是一种在图中找到两个节点之间最快路径的方法。它是大多数寻路工作的基础,并发现自己用于从人工智能到游戏设计的任何领域。

每个开发人员都应该学习的 10 种算法

10.做练习题

前九种算法都为您提供了解决作为开发人员可能遇到的问题原型的方法。然而,现实情况是,作为开发人员,您经常会遇到全新的算法问题。这就是为什么比记住任何算法更重要的是培养用算法解决问题的能力。
到的问题原型的方法。然而,现实情况是,作为开发人员,您经常会遇到全新的算法问题。这就是为什么比记住任何算法更重要的是培养用算法解决问题的能力。

关于这些算法,你学废了么/strong>


真诚地邀请您加入我们的大家庭,在这里不仅有技术知识分享,还有博主们之间的互帮互助.还不定期发红包,每月更有抽奖环节,游戏机和实体书相赠(包邮),让我们抱团取暖,抱团内卷.打造美好C站.期待您的加入.

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览33986 人正在系统学习中 群人皆佬,共襄盛举,共同成长

每个开发人员都应该学习的 10 种算法 微信名片 每个开发人员都应该学习的 10 种算法

来源:TimeFriends

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月24日
下一篇 2022年5月24日

相关推荐