本帖最后由 人生长苦 于 2014-3-14 21:34 编辑
自从前几天看了《数据结构与算法分析》Mark Allen Weiss就感触越来越深。偶觉得,能发明那些精妙的数据结构与算法并可以到处应用到,这本身真的是太了不起了。以前常这样认为:“这些东西不就是像几加几一样的逻辑吗,没什么难懂得!”这样天真自大的想法。现在仔细想想,能把程序用在内存与CPU上,而且是如此的完美,真的感到不可思议,比如递归,这个东西以前只是认为用来做做像斐波那契数列这样的题而已,可是发现它还有很多美妙的用途,数据结构里经常用到这个,可是自己还是不能熟练的运用递归,在我看来能熟练编写递归,各种数据结构与算法并综合运用的人真的是大神了,我想他们的脑袋一定得要很灵活才行。
再比如,有些东西的想法很简单,比如交换两个数(实在太简单了),但是一旦到了程序里,就得用个TEMP,搞几次赋值才能搞定,即便到了现在,我也不敢说能把这样一个简单的程序一气呵成,再比如计算10除以7要求任意精度,用笔算也非常简单,但是转换成自己写的程序,就要想好久,而且运算效率肯定低。当然,以上只是一些简单的例子而已了,甚而再思考个数据结构出来或高效的算法出来就不是我等能想到的了,那都是境界了感觉。
还有,算法这个东西,当然,我也认为是要有很好的数学基础才能写出或发明好的算法的,但是我觉得算法和数学关系上并不是很大,因为数学很牛不一定能写出牛的算法与数据结构,一个数学上的算法到程序上也需要转化,当然这不是主要的,主要是思想方法真的大不同的感觉,反正,我们应该是低估了那些研究算法与计算机结构的科学家们的伟大之处。
所以,真心认为能写出好软件(程序),是真心了不起的事,这比硬件要难,因为硬件就要感性多了,比喻起来就是一个理科(程序,算法)一个文科(硬件,电路)。
|