快速算法介绍

这是为这个神奇的计算机科学世界中的新手们介绍的算法🚀。


想象今天是早晨,您在家,看电视,吃甜甜圈。 然后,您意识到您需要购买啤酒,因为以后啤酒将在Mark的家中进行烧烤(顺便说一句,假设您有一个叫Mark的朋友)。 从沙发上站起来,直到在最近的杂货店买啤酒,您需要遵循一系列步骤。 这一系列步骤称为算法

从计算上来说,给定输入(记住要购买啤酒),算法是计算良好的定义过程,它将返回输出(购买的啤酒)。 定义明确的意思是每个步骤都明确且足够了解,因此可以轻松实现。 算法总是试图解决问题。

一个更现实的例子是排序算法。 有很多算法可以对元素序列进行排序,但让我们定义BubbleSort(最简单的一种)(来源Wikipedia):

  过程 bubbleSort(A:可排序项目的列表) 
n =长度(A)
重复
交换=
对于 i = 1 n-1(含)
/ *( 如果这对故障)* /
如果 A [i-1]> A [i],
/ *交换它们, 记住发生了变化* /
swap(A [i-1],A [i])
交换=
如果 结束
结束
直到 交换
结束 程序

现在给出一些有趣且简短的定义:

  • 算法的输入是该算法尝试解决的问题的实例 (例如,列表[1、5、3、6]是排序问题的实例)。
  • 如果针对问题的每个实例都能解决问题,则该算法称为正确算法。
 更好地解释算法的正确性很有趣。 对于某些情况下的问题,有些算法会以错误的答案停止,或者永远不会结束。 这些不是正确的算法。 在某些情况下,如果我们可以控制它们的错误率,它们仍然很有趣。 
  • 我们说,如果算法以正确答案终止,那么该算法就可以解决问题。

现在我们了解了什么是算法,由它们解决的问题的一些示例是:

  • 数据加密
  • 搜索引擎(例如Google)
  • 搜索通往命运的更好路线(例如位智)
  • 对元素列表进行排序(这是经典方法。有许多算法可以解决该问题)。

算法还解决了许多其他问题。 现在您知道它们是什么了,您可以开始实现自己的了。 但请注意:不要将算法与任何编程语言的sintax混淆。 即使没有编程语言,也可以定义算法。 如果您想开始用一种语言实现算法,我建议您使用Javascript或Swift(如果您使用Mac)。

现在,取决于您。 您已经知道什么是算法,那么您要解决什么问题? 您只需要执行这些步骤,然后征服世界即可。

算法–维基百科

作为一种有效的方法,可以在有限的空间和时间范围内以及定义明确的算法中表达算法。

en.wikipedia.org

算法简介,第三版

最新版的基本文本和专业参考,以及有关以下主题的大量新材料:

mitpress.mit.edu

MIT OpenCourseWare是计算机科学主题的绝佳来源。 他们提供了一门关于算法介绍的课程 我建议您至少观看其中的某些部分(因为这是一段较长的视频)。 他们的课总是很有趣,而且讲得很好。


我希望这个故事有用。 谢谢阅读! 🙂