1、什么是数据结构
广义上讲:数据结构就是一组数据的存储结构。
狭义上讲:队列、栈、堆、树 等常用的数据结构。
2、什么是算法
算法(Algorithm)就是操作数据的一组方法。
比如:二分查找法、递归算法、各种排序算法。
3、数据结构和算法的关系
两者是相辅相成的。数据结构为算法服务,算法作用在特定的数据结构之上。
比如:因为数组具有随机访问的特点,二分查找算法需要用数组来存储数据,如果选择链表存储的话,二分查找算法就无法工作。
4、为什么要学习数据结构和算法
为什么要学习数据结构和算法,很多人第一想到的就是面试需要。这并没有错,只是太片面了【用大家的话就是‘’肤浅‘,没有追求,哈哈哈’】。
我列了以下几点【当然还有很多其他的因素】
1、通过大场面试,比如BAT等
2、写出性能更优的代码
如果你是写底层系统,各种框架的代码,对性能就要求比较高了。比如Spring、Redis等等,在这其中就有很多的基础的数据结构和算法的思想。
3、可以懂得各种封装接口,代码库背后的原理,做到知其然知其所以然
如果你只是一个写业务代码的底层码农,当面临选择ArrayList 和LinkedList的时候,这个你肯定清楚为什么选择哪个吧。
4、学习数据结构和算法后,你看待问题的深度、理解问题的角度完全不一样
5、做一个有梦想、对编程有追求的码农,要想自己的代码有质的变化,要想自己突破自己,必须学习数据结构和算法。
5、学习数据结构算法难吗?
我刚开始也觉得挺难的,感觉很难掌握,学了没几天就忘记了。
其实不是这样的,不是难,是懒,我们总是三天打鱼两天晒网,每次就是只停留在数组、链表,而且还没真正的掌握。
闻道有先后,很多只是你还不知道罢了,坚持学下去,相信你会有收获的。
6、如何学习数据结构和算法?
重要的是坚持、挑重点学习,下面我会逐步的完善这个图。