我并非计算机科班出身,以前只对C、java、Matlab、Python语言有粗略的了解,以前写代码的时候只会考虑功能能实现就行了,并不考虑性能方面的问题,对数据结构与算法从未学习过,更不了解什么时间复杂度、空间复杂度。写代码的时候从不考虑这些。而这一次我想修炼下编程的内功—好好学习下数据结构与算法。
1. 以前对数据结构与算法的困惑
我们以前对数据结构与算法一般都会有如下几点困惑,我简单罗列下:
(1) 在学校中觉得数据结构与算法很难、然后一直也没认真学。错过了最佳学习时光
(2) 工作后,遇到数据结构的坑时,我们一般都是嗤之以鼻,绕过去。功能实现了就行
(3) 面试时,当面试官问数据结构算法的问题时,总是一脸懵逼,各种被吊打
(4) 研究开源源码时,有时候跟不上别人的节奏,甚至都看不懂,各种泪流满面
…等等…
上面的几点困惑,或许大多数IT同胞都遇到过吧。所以好好学习下数据结构与算法还是很有必要的。
2. 为什么要学习数据结构和算法
或许有很多人认为,在实际工作中很少用到数据结构和算法,只要知道API的调用,能熟练的用开源框架,代码照样可以写的很6,是不是就不用系统性的去学习数据结构和算法呢?其实不是这样的,下面我就说几点要学好数据结构和算法的理由。
2.1 大厂面试必备
很多大公司,比如Google、Facebook、BAT、头条等。在面试的时候喜欢叫你现场写代码、考算法。有的人技术很牛,但最终在算法那关没通过,很是可惜。
刚毕业时,参加校招时,