我们应该都听过这么一句话:程序 = 数据结构 + 算法
。那么数据结构和算法本质是什么?我们又为什么要学习数据结构和算法?
数据结构和算法本质是什么?
网上对数据结构和算法的介绍是这样:
- 数据结构是计算机中存储、组织数据的方式,比如数组、链表、树、图、堆、队列、栈、字典
- 算法是计算机中处理数据的方式,比如排序、二分查找、归并排序、快速排序
通俗来说:
-
数据结构是数据的容器,用来对数据增、删、改、查。我们就是要在众多的容器中,针对现实开发中的实际情况,选择最合适的数据存储容器。比如:杯子和壶,都能装水,杯子是容器,壶也是容器,水作为数据,我们什么时候选择杯子和壶?答案显而易见,我们的目的是想方便的喝水,选择杯子,我们目的主要是保存水,倒水的频率没有那么多,则选择壶。当然你可能会跟我说:“我用壶也能保存水,也能喝水”。这也合理,因为开发中,大家认知和想法不同,选择自然也不同。但能用是一回事,好用又是另一回事,coding 同理。
-
算法是针对特定数据结构增删改查的最优解决方案,比如二分查找,要求数据是有序的数组。针对排序,我们有很多的算法,比如冒泡排序、选择排序、快速排序等,针对实际情况选择最优算法,也是我们学习数据结构和算法的目的。
大厂面试
很多大公司,在面试的时候都喜欢考算法,为什么呢?因为这个是基本功,就好比建房子,地基一定要牢固。大厂面试,不仅看重过往和当前的技术,也要看重未来的潜力。地基越牢,走的跟高。
方便了解框架源码和思想
很多优秀的开源框架,都糅合了很多基础数据结构和算法的设计思想。能弄明白这些底层原理,你就能更好地使用它们。即便出现问题,也很容易就能定位。培养你举一反三的能力,帮助你学习成长。
总结
- 程序 = 数据结构 + 算法
- 学习数据结构和算法,最实际的好处是帮助进大厂,获得理想岗位
- 培养解决问题的思路和方法,帮助个人成长