程序员必须要知道的算法!

导语:

在程序员圈子里,经常讨论哪家大厂的算法如何厉害。那么,算法这个让程序员情感复杂的东西,到底“厉害”在何处?算法对于程序员是否重要?作为一个合格的程序员,应该掌握哪些算法?本期,就和大家一起探索,“算法到底是什么”。

应对灯泡不亮的算法流程图

算法的前世今生

算法(algorithm)作为在数学(算学)和计算机科学之中的一个有效方法,是一个被定义好的、计算机可施行指示的有限步骤或次序,常用于计算、数据处理和自动推理。它包含了一系列定义清晰的指令,并可于有限的时间及空间内清楚的表述出来。

用通俗的方式来理解,可以把算法比作食谱。让对烘焙一无所知的人,也可以根据食谱上所提供的“算法”步骤,按比例混合材料,用适当的和面力度,控制烤制时间,做出美味的面包。

同时,每一次烤制面包,都不需要重新研究烘焙的方法。这也是“算法”的初步特征:算法是解决问题的手段。我们不需要为每个同类问题,都发明一个解决方案。因此,算法是一劳永逸式的工作方法。 

离开如今狭义的互联网术语,在千年之前,人们关于算法的探索就已经开始,在中国古代,算法被称为“术”。最早出现在《周髀算经》、《九章算术》。特别是《九章算术》,给出四则运算、最大公约数、最小公倍数、开平方根、开立方根、求素数的埃拉托斯特尼筛法,线性方程组求解的算法。

西方世界,大约公元前300年,欧几里得算法出现,被人们认为是史上第一个算法。时间来到1842年,爱达·勒芙蕾丝为“巴贝奇分析机”编写求解“解伯努利微分方程”的程序,因此爱达·勒芙蕾丝被大多数人认为是世界上第一位程序员。紧接着,20世纪的英国数学家图灵提出了著名的图灵论题,并提

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值