不少程序员对数据结构和算法并不熟悉,以为在平常工做中用处并不大并且还比较难学,有时间学数据结构与算法,还不如对框架和Api熟练来的实在。确实,做为业务开发人员不懂算法仍然能够很快很好地完成开发任务,这是由于大部分开发语言底层都基于基本数据结构帮咱们封装好了,咱们拿来就能够用,并且性能也比较好。可是即使不须要本身去写底层框架,若是知道更多原理也能知道哪一种数据结构是适合什么样的场景。随着近几年大数据、AI的兴起,特别是大公司愈来愈重视算法工程师和大数据处理技术的积累,没有扎实的数据结构和算法基础,程序员很容易遇到天花板。程序员
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。(摘自百度百科)面试
好比:图书馆里书籍按照计算机、医学、经济学等不一样学科分类,将不一样分类分别放在不一样的书架,而后计算机类书架里又有计算机网络、操做系统、编程语言……医学类里有临床医学、解剖等,这种按不一样分类摆放的方式就是书籍这类数据存放的结构。算法
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法表明着用系统的方法描述解决问题的策略机制。(摘自百度百科)编程
好比:我要查找《Java从入门到放弃》这本书,有不少种方法:网络
这两种方法就是两种不一样的算法。数据结构
数据结构是算法实现的基础,算法老是要依赖于某种数据结构来实现的。脱离了数据结构只谈算法没有实际意义,这就是为何谈算法的时候总得要有个具体的数据结构做为基础。框架