现在市面上的数据结构与算法的教程也都不少,但有两个问题,第一是泛泛而谈,第二是基本都是c语言实现,而java作为第一主流语言,理应有它自己的独到之处。这也是我写这些博客的初衷,我会讲解java实现的数据结构和算法。
至于说为什么要学习数据结构和算法,我相信大家都应该清楚。大家平时的工作,敲的业务代码,都属于外功,可以帮你轻松地完成老板交待的工作,每个月能挣到属于自己的那份钱。但我不知道小伙伴们有没有这样的困境,工作三到五年,项目做了很多,但自己的能力始终处于二流水平,写业务代码,没点问题;想跳槽面试,发现面试官问的问题都很底层,跟自己平时的工作风马牛不相及。为什么会出现这样的情况呢?
是因为我们的底子薄了,平时积累的也不够。很多人都这样举例:编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱。一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数据结构和算法的人也能编程。但是如果一个开车的人懂变速箱的原理,比如降低速度来获得更大的牵引力,或者通过降低牵引力来获得更快的行驶速度。那么爬坡时使用1档,便可以获得更大的牵引力;下坡时便使用低档限制车的行驶速度。回到编程而言,比如将一个班级的学生名字要临时存储在内存中,你会选择什么数据结构来存储,数组还是ArrayList,或者HashSet,或者别的数据结构。如果不懂数据结构的,可能随便选择一个容器来存储,也能完成所有的功能,但是后期如果随着学生数据量的增多,随便选择的数据结构肯定会存在性能问题,而一个懂数据结构和算法的人,在实际编程中会选择适当的数据结构来解决相应的问题,会极大的提高程序的性能。
我想,如果你懂数据结构和算法,那你的薪资必然是要比不懂的朋友或同行要高的,因为当他还在面向百度编程的时候,你已经直指了问题的核心,你会用更底层更优雅的方式去解决你所面对的问题。这就是数据结构和算法的魅力,也是我接下来要跟大家聊的内容。
曾经一位哲人说过:程序=数据结构+算法。
数据结构是程序的骨架,算法是程序的灵魂。那我们就从骨架和灵魂来开始我们的程序之旅吧。
CSDN网站2019年度“博客之星”获得者。
曾经担任传智播客金牌讲师,多年的产品设计和开发经验,带领团队完成多个知名产品。历任多家大型公司的Java架构师,对知名框架的源码均有深入研究。拥有IT一线开发、教学10多年的实战经验,能充分利用自己的优势,把学员应该掌握的知识和企业需求人才痛点完美结合。所有讲授的课程都是经过实践检验的真实工业级项目。善于将掌握的知识归纳总结,乐于分享、创新,授课风格由简入深,通俗易懂,擅长将理论知识通过代码来实现,举一反三。希望分享的知识能够让小伙伴们能更快吸收、进化。
其技术专业度高,有高级开发专业水平和项目背景,经验丰富。
老师签名,当你还不能写出自己满意的程序时,你就不要去睡觉。