前言
以前刚开始工作时,总认为数据结构与算法离自己太远,就犹如计算机底层原理似的遥不可及,现在随着工作时间与经验的不断增长,才发现数据结构与算法,真是随处可见。
最简单的例如HashMap,它的数据结构为什么会是数组加链表?为什么当链表的长度超过一定长度时,链表便会转成成红黑二叉树?为什么当红黑二叉树的长度小于一定数值时又会转换成链表?这些都是问题,也是日常最经常用的数据结构与算法。
那么究竟为什么学数据结构与算法?就为了看懂源码吗?有的同学说,我直接调用api照样6的飞起啊,压根不用管底层啊。
话虽理论没错,但我认为为什么学习数据结构与算法是以下几点
进入大厂,相信每个人都有一个大厂梦,而数据结构与算法是进大厂的标准条件。
一直甘心做一个CRUD boy吗,写出性能更优的代码生活总应该充满这挑战不对吗?
最重要的一点是,我们能通过这个争取到一份薪酬更高的工作,去改善我们父母与家庭的生活。
那么说了这么多,到底什么是数据结构与算法?
-
1、数据结构是指一组数据的存储结构
-
2、算法就是操作数据的方法
-
3、数据结构和算法是相辅相成的,数据结构是为算法服务的(个人认为算法是为数据结构服务的),而算法要作用在特定的数据结构之上
那么重点来了,数据结构和算法到底该怎么学习呢
下面介绍一份儿我从我的好大哥(百度安全部的工程师,目前百度T6)那儿整来百度内部的面试真题资料。
-
什么是HashMap,由于HashMap在开发中占有的举足轻重的地位,所以对hashmap的一些重要性质和优化点进行一些总结就显得尤为重要了,同时也能在实际工作中提高hashMap的效率。
-
如何构造一致性哈希算法,民间常言:“说唱有嘻哈,算法有哈希。”在了解比特币投资和区块链技术中,哈希算法作为“常客”时常出现。但大多数朋友对它知之甚少,为它晦涩难懂的内涵所头疼。
-
hashCode() 和equals() 方法的重要性体现在什么地方?(这个真的是重点!)
-
求二叉树的最小深度
最后
其实说了这么多,也只是希望把更多好的东西带给观众姥爷们,但学习毕竟是自己的事儿,小编我也不可能把知识吸出来然后灌进姥爷们的脑子里(如果可以的话,我倒是愿意尽一份儿微薄之力哈哈哈)