程序数据结构算法

“程序设计=算法+数据结构”。在我们IT开发界是奉为精典的一句话。其来源于瑞士计算机科学家NiklausWirth于年出版的一本书的名字(见上图)

数据结构是指数据的组成形式,算法是指解决某一领域业务的标准方案。这句名言的本身及其流行程度也说明了数据结构和算法在计算机学科中不可替代的地位和独特作用。

但可是,可但是,这话到今天是不是有点out了,毕竟是70年代的事儿了,还能指导开发实践吗?

为什么?编程语言发展到今天,伴随着集成开发工具的不断改进,加上计算机硬件水平的不断提高,我们可以很方便快捷地开发和部署应用程序而不用太担心程序对硬件的需求,数据结构和算法似乎显得不再那么重要,很多强大的第三方工具包或者类库,甚至编程语言本身,已经为我们提供了很多优秀的数据结构和算法,我们只需要拿来使用即可。

例如Java用MyEclipse这个牛*的IDE工具,开发什么样的项目应用,刷刷几下子,全都自动生成类及配置文件还有JDK已经发展到1.7里面封装了很数据结构和算法,例如说java.util.*。里面啥数据结构都有,需要时就掌握方法使用就OK了。另外,硬件都整到四核,八核,内存不整个16G都不好意思见人,更不用说硬盘都到TB级别了。难道“苍天已死,黄天当立”,所以学习和工作的重点应该放在诸如分布式、多线程、网络编程、框架这样的具体技术上。

又及其实最遭心是数据结构和算法这样的课程太确实枯燥乏味了.

可是事情真的是这样吗?

不是这样的,我们似乎忽略了一个问题,虽然硬件水平提升了,但同时需要面对的问题复杂度、运算规模、信息和数据的数量也在急剧膨胀,其膨胀速度甚至比硬件水平的提升速度要快得多。尤其是在当下正火热的云计算和大数据领域,数据结构和算法的重要性依然不可替代,甚至越发重要。

数据结构和算法的重要性并不在于程序的“实现”,而在与程序的“优化”,在一些小型应用中,考不考虑数据结构和算法似乎区别不大,而且为了数据结构和算法的优化,可能还会耽误程序的开发,进而延误整个项目的进度。程序员最爱挂在嘴边的一句话是“编程改变世界”,但改变世界的并不是那些小型应用。况且小应用也要发展,要发展总会遇到瓶颈,硬件的升级总有个限度。有这样一句话:好产品的一个最大特点就是对硬件的无底线压榨。而压榨方式就是对算法的不断优化和对数据结构的精挑细选,数据结构和算法也决定了一个产品的稳定性和优雅程度。哪怕仅仅是为了从众多现成的数据结构和算法中挑选一个合适的来使用,也要对数据结构和算法有一定的了解。

好比吃饭和种地,并不是每个人为了吃饭都要去种地,但绝对不能否认种地的重要性,数据结构是程序的基石,而算法是程序的灵魂,Kweny用了近四年的时间才意识到这个问题,所幸还不算太迟,作为一个对技术有追求有理想的立志成为“高大上”的开发者,你们应该决定沉下心来好好钻研一下

下面给童薛们一个图,看看要掌握什么。









































北京白癜风价格
北京哪家医院治疗白癜风



转载请注明:http://www.92nongye.com/txjg/204613051.html