我的算法入门之旅

来源:互联网 发布:java 前端分页代码 编辑:程序博客网 时间:2024/06/03 23:06

这篇文章讲了什么?

我的算法学习经历,入门的理解。

关于算法的重要性


初学

第一次接触算法是在大二下学期的数据结构课上听说的,还记得课本叫《数据结构和算法导论》,不过当时讲这门课和其他课一样上课在手机陪伴下度过了--反正最后考试我有前后两个大腿,所以下半年这门重要的课程在书上没有一个笔记下度过了。

到了自考 要考数据结构,提高班开始集体上课学习算法才反映过来竟然忽略了这么重要的一门课。我这个老手又要重新学习一遍算法了。


重要性

最近两三个月开始了算法学习,为自考,软考打基础。说到算法,如果你想成为一个码农或者熟练工,那算法大可以不学,因为算法在一直重复同样的事下确实没用,但如果想要成为一个优秀的开发者(Developer),扎实的算法必不可少,因为你可能会掉进一些只能借助算法才能爬出去的坑里--出自网络某被算法又爱又恨的程序猿


算法为何物




      其实说白了,算法就是解决某种问题的方式,但也分好的算法和差的算法,而学习书本上的知识目的就是为了提升自己的思维方式,借鉴更多好的算法,因为好的算法可以提升程序的性能,提高开发效率,就拿最简单的例子,玩猜数字游戏,1-100里面随便选一个数字,然后让你去猜它是多少,别人会告诉你这个数字大了还是小了,最直接的方式就是从1一直猜到100,但是也有更简便的方式:就是类似二分法的方式从50开始猜,如果大了就猜1-50中的25,如果小了猜50-100中的75,以此类推,第一种从1-100猜数字是算法,第二种二分法的方式也是算法,只是第二种更好.........还有从1加到100,直接方式1+2+3....一个一个的加,另一种方式(1+100)*50,这个就是著名的高斯算法。


总结

Peter Norvig曾经写过一篇非常精彩的SICP书评,我认为这里把SICP换成算法依然适用:

      To use an analogy, if algorithms were about automobiles, it would be for the person who wants to know how cars work, how they are built, and how one might design fuel-efficient, safe, reliable vehicles for the 21st century. The people who hate algorithms are the ones who just want to know how to drive their car on the highway, just like everyone else.


MIT教授Erik Demaine则更为直接:


   If you want to become a good programmer, you can spend 10 years programming, or spend 2 years programming and learning algorithms.


总而言之,我们是精英,在未来生活中扎实的算法必不可少,端正对算法的态度,尽力去学。



原创粉丝点击