有很多人说,自己实际工作中根本用不到数据结构和算法。所以,就算不懂这块知识,只要 Java API、开发框架用得熟练,照样可以把代码写得“飞”起来。事实真的是这样吗?
我们学习数据结构和算法,并不是为了死记硬背几个知识点。我们的目的是建立时间复杂度、空间复杂度意识,写出高质量的代码,能够设计基础架构,提升编程技能,训练逻辑思维,积攒人生经验。
经常说,程序=算法+数据结构,可以想象一个好的程序,算法和数据结构是多么重要,简单的说数据与数据之间的关系叫做数据结构,可以是数组、队列、堆栈、树或者图,数据结构使用计算机语言定义了程序,而算法则是实现程序的具体步骤,将这些结构贯穿在一起,两者密不可分。
学好数据结构,可以让你能够更加清晰的将真实数据转换成计算机能够理解的语言,能够让你的程序逻辑更加严谨,计算机很聪明,但也很笨,只会按照既定的规则去机械化的执行用户命令,并且这个命令一定是确定的,要么是“是”(1),要么是“不是”(0),不接受类似于“可能”、“大概”、“也许”等等模棱两可的指令,本质上就是二进制语言,但是不管是C/C++/Java/C#等等语言,对于人来说已经算是接近表达的高级编程语言,但相对于计算机来说,则刚好反过来。那么好的程序结构对于更好的表达编程人员的思想而被计算机理解就变得尤为重要。