学习数据结构与算法一个很重要的前提,就是至少熟练掌握一门编程语言。至于是那种语言就无关紧要了,C语言、C++、Java、Python等语言都可以。因为无论是数据结构还是算法,它教会我们的是解决问题的思想,并不挂靠某一门具体的编程语言。换句话说,在掌握任何一门编程语言的基础上,都可以学习数据结构和算法。
数据结构与算法的关系大量数据结构教程中都将数据结构的知识和算法掺杂起来讲,使很多初学者认为数据结构就是在讲算法,这样理解是不准确的。如果把程序理解为:
程序=数据+算法
那么数据结构用于解决数据存储问题,而算法用于处理和分析数据,输出结果。
在解决问题的过程中,数据结构要配合算法选择最优的存储结构来存储数据,而算法也要结合数据存储的特点,用最优的策略来分析并处理数据,可以最高效地解决问题。
数据结构与算法的重要性假设需要从众多数据中查找出符合要求的元素,美学没学习数据结构的话,只能借助数组这种简单的存储结构来实现,而通过学习数据结构,解决此类问题既可以通过构建二叉排序树、平衡二叉树、红黑树、B+/B-树甚至借助哈希表解决。不同数据结构选择往往直接影响程序性能好坏。
掌握了数据结构与算法,看待问题的深度、解决问题的角度会大有不同,对于个人逻辑思维的提升,也是质的飞跃。与编程语言不同,无论是c语言、Java、Python、C++、PHP还是其他编程语言,无时无刻不在更新迭代,而数据结构却永远不会过时,毋庸置疑,数据结构是每个程序员必须掌握的基本功。
要想学好数据结构,不仅要求学员具备良好的编程基础,还需具有较强的逻辑分析能力、理解能力和一定的空间想象能力,可以这么说,能玩转数据结构的人,其综合实力往往都不差。很多大的互联网公司,更看重的往往不是你精通多少种编程语言,而是综合能力,也就是解决问题的能力。可见,数据结构与算法是能力高低的分水岭,是大厂选拔人才的重要标准。
学习数据结构的三部曲书比如《算法图解》、《我的第一本算法书》、《啊哈算法》、《大话数据结构》、《漫画算法-小灰的算法之旅》、《算法(第4版)》、《数据结构与算法分析》、《挑战程序设计竞赛》以及《算法导论》等等。
如果要比较系统地学习数据结构的话,推荐看《大话数据结构》、《算法(第4版)》和《数据结构与算法分析》。
大话数据结算法(第4版)据结构与算法分析如果刚接触数据结构的话,可以从《算法图解》、《我的第一本算法书》入手。
算法图解我的第一本算法书视频郝斌数据结构虽然比较老,但是讲的比较详细,容易理解,对初学者非常友好。