很多人
习惯性的有这样的认识,然而我们需要对事实进行一些思考。
算法也是数据,很多人在很多的地方都谈到过这个事情。所谓的算法无非就是数据的结构,而数据其实就是由代表量的数据和代表其组合联系的结构构成的。那个我们是否可以说程序=数据呢?
很遗憾,理想状况下确实就是如此,但是我们所处的环境不是理想的。因为我们要考虑到具体的语言细节。所以我们可以说程序=数据或者算法+语言细节。由此我们就会经常的听说,语言其实没有思想重要,关键还是思想,思想掌握了语言就容易了。当然面上看确实如此。
不过当我们仔细的
研究各种语言就会
发现,各种语言面向数据的细节部分是那么的不同。因此当我们用java和用c即便这么语法类似的语言来实现同样一个程序,也是那么的不同。
同时另外一个重要的问题,我们不要忘记。面向一个问题的解决方式可能会有多种,也就是面向一个问题的算法往往不是唯一的。而且进一步说,这些不同的算法,往往还可以差距极大,根本就不能归结为一类。而各种语言的偏好,往往可以确定那些个风格的算法更适合它们去实现。
算法和语言其实是相互影响的,虽然我们可以说更多的时候算法很重要,但是我们也要承认语言的影响也十分重要。