程序员学算法到底有什么用?

灵灵柒捌玖拾

30天以前 3浏览
程序员学算法到底有什么用?

算法是编程的基础,可以提升自己的逻辑能力,好的算法可以使编程更简单,减少冗余,用最短的代码实现功能,学好算法是很有必要的


算法是计算机的灵魂,是解决所有问题的根源,所以计算机与数学关系非常密切。


程序是算法加编程语言。其中,编程语言是很多程序员都熟知的。但说到算法部分程序员觉得跟自己关系不大。实际上,所有的程序都要用到算法。下面举几个算法的例子帮您理解一下算法的作用。

HelloWorld里的算法

学过编程的人,接触到的第一个程序大概都是著名的“Helloworld”了。这么简单的程序会有算法吗?当然有啦,请思考一下计算机是只认识数字的,怎么让它能识别文字呢?聪明的人类给每一个文字都制定了一个编码,配合数据类型的定义,计算机就能识别文字了。这种编码的方式就是一种算法了。您在键盘上输入文字本身就是一种算法的实现。英文还好就一两百个字母数字和符号。汉语博大精深有几万个字符,用101个按键组合来体现所有的文字这本身就是一种了不起的算法。

经典的算法-割圆术

割圆术跟程序的关系不大,但它却凝聚了编程的思想。我们知道所谓程序运算是由四则运算加上逻辑运算组成的。割圆术正是反复使用用了这些基本运算,经多次循环不断接近圆周率的。这个方法在算法中叫递推法。在只能用算筹的年代,就能想到这么时尚的方法,我不得不说老祖宗真的很聪明。从另一个角度上说,算法其实是超越了编程的一种思想。

一个关于算法的故事

这个故事有点悲伤。我们知道法律规定一个人去逝后,他的遗产要由直系亲属继承。有这样一个家庭夫妇二人和一个孩子。有一天丈夫带着孩子二人坐飞机旅行,不幸的是飞机坠毁了二个人都遇难了。现在出现了一个遗产继承的问题。

丈夫的父母都健在,如果丈夫先于孩子去世,那么按照法律他的遗产要由父母妻子和孩子四人继承,每人分得四分之一。之后孩子去世,妻子将继承孩子的全部财产。结果是父母每人分得四分之一,而妻子一人独得二分之一。

如果孩子先于丈夫去世,则结局就是父母和妻子每人得三分之一。

到底该怎么分呢?没人能知道,因为谁都没有办法搞清楚丈夫和孩子哪个先去世。这说明了前面那个关于继承的法律有点问题。这个问题是一个关于时间的算法问题。这种现象在互联网的世界里很普遍,很多人都在发信息,但互联网不能保证先发的信息就能先到。因此,必须要设计出算法来解决这种时间上的冲突。

我们可以把计算机程序想象成用数字去模拟现实世界,算法则对应了现实世界中的各种规则。不懂得算法,我们便无法确定写出来的程序能否满足需求。


很高兴回答您提出的,程序员学好算法到底有什么用?

1、首先算法学好的话,不论对你思考问题的方式还是对你编程的思维都会有很大的好处。

2、编程算法只是算法的一种表达形式,还可以用表格或流程图来表达算法。

3、各种算法在不同领域扮演不通角色,本质上没有区别,一通百通。

4、一些基础算法的话,没必要找资料书籍,也没有太多要求,随便在网上搜索一下,就能找到很多详细的资料。





其实,一般初级甚至中级程序员在日常开发中是用不了算法的,要么接触不到,要么别人帮你封装好了,你可以用现成的

但是时间一长,你就会发现不会算法,就很难变得更加优秀,你会发现优秀框架的源码,部分是需要用到算法,你不懂,有些存储原理,也用到算法,用到这些算法,你的代码执行的效率更高,这个时候你就需要去了解这些东西,否则你就很难再上一层楼

千万不要觉得算法不重要,其实这个是一种宝贵财富,在日常的开发中,对你有潜移默化的影响,所以,想成为一个优秀的程序员,算法数据结构是必不可少学的,一起加油学习算法吧


本文仅代表作者观点,版权归属原创作者,如需转载请在文中标注来源及作则名字。

免责声明:本文系转载编辑文章,仅做分享只用,如有疑问请联系邮箱:110@zbj.com

程序员
大家都在看
哪个电脑浏览器最适合程序员?

哪个电脑浏览器最适合程序员?

程序员
69浏览
【团队】APP开发项目需要配备怎么样的技术人员?

APP开发公司主要是给客户提供技术开发服务,技术开发服务提供的主体主要是专业人员,我们从一个APP开发的全过程去探讨一下专业APP开发公司需要拥有哪些职能的团队。

APP开发APP开发公司ITAPP技术人员程序员
270浏览
程序员的日常

程序员的日常

程序员
137浏览
程序员轻松赚钱的n种方法

程序员这种拥有高技术的人,除了正常上班拿薪水外,业余利用自己的技能,可以轻松赚取外快,甚至抵得上工资哦。你还在经常加班熬夜么?太out了!

程序员
3浏览
架构师的工作和程序员的工作有何不同?

架构师的工作和程序员的工作有何不同?

程序员
0浏览
程序员写的代码是不是越少越好,为什么?

程序员写的代码是不是越少越好,为什么?

程序员
5浏览
前端程序员和后端有什么不同?

前端程序员和后端有什么不同?

程序员
3浏览
程序员每天写日志,主要是写什么?

程序员每天写日志,主要是写什么?

程序员
2浏览
程序员学算法到底有什么用?

程序员学算法到底有什么用?

程序员
3浏览
c++程序员需要具备的知识?

c++程序员需要具备的知识?

程序员
8浏览
怎样看待有些程序员在网上一些平台出售代码?

怎样看待有些程序员在网上一些平台出售代码?

程序员
2浏览
做一个PHP程序员都需要学什么?

做一个PHP程序员都需要学什么?

程序员
0浏览
会计和电脑程序员哪个职业更有潜力?

会计和电脑程序员哪个职业更有潜力?

程序员
52浏览
做一个PHP程序员都需要学什么?

做一个PHP程序员都需要学什么?

程序员
2浏览
php程序员一般在哪里可以看到新技术?

php程序员一般在哪里可以看到新技术?

程序员
0浏览
程序员一般用什么配置的电脑好?

程序员一般用什么配置的电脑好?

程序员
4浏览
大数据和人工智能程序员选择哪个方向比较好?

大数据和人工智能程序员选择哪个方向比较好?

程序员
34浏览
优秀的程序员是如何突破瓶颈的?

程序员是一群,智商极高,人品善良,收入挺高,交友不多,生活圈子比较小而且单纯,都是一批可爱的人,但是他们不善言谈,不善交际。到了一定的年龄和级别后,都很难突破自己的瓶颈。那么优秀程序员是如何突破自己的瓶颈的呢?

程序员
3浏览
程序员最喜欢用什么浏览器?

程序员最喜欢用什么浏览器?

程序员
20浏览
程序员如何轻松实现数据可视化?

程序员如何轻松实现数据可视化?

程序员
4浏览
点赞
收藏
分享