浅谈数据结构与算法

分享:  

本科学数据结构与算法时,自己也比较注意理论实践想结合,对课本上讲授的内容也算是掌握的比较好,到考研复习时甚至能直接拿出草稿纸把课本中所有线性表、树、图等相关的算法直接给手写出来,至今我还保留着当时的一份草稿 :)

数据结构与算法是比较重要的,当对计算性能、存储空间提出明确要求时,就需要考虑计算复杂度、空间复杂度的问题,只不过实际工作中要求没有那么高,大家也没有那么重视而已。但是当涉及到一些复用范围比较广的代码,一般都会做benchmark来验证其是否ok。

如果一个同学脑海里有成体系的数据结构与算法的训练,在设计方案时也会同时考虑几种方案并平衡各自优缺点,这其实就是一个非常好的工程素养。当然了数据结构与算法的训练,也会逐渐培养大家一种能力,就是化繁为简、把特殊问题一般化,这种能力在编码、设计解决方案时也会具备更好的维护性。

我自认为自己具备这种能力了,但是实际情况是,在我接触了分布式领域的相关知识后,我发现数据结构与算法真的是博大精深,数据结构可以小到一个数组,也可以大到一个B+树,而对他们的运用更能彰显掌握的精炼程度,数组记录的可能是一系列普通数值,也可能是一个分布式领域冲突检测的时钟向量。

在数据结构与算法的课本上,可能接触不到这么广泛的领域,某种程度上会让人觉得课本知识有点死板、枯燥,不知道前Google工程师王争的极客时间课程《数据结构与算法》之美,是否会有另一番味道?另外,自己从未参加过ACM竞赛之类的,也看过一些参与竞赛的同学的分享、编程模板,内容覆盖面之广也让我汗颜,自觉能力不能及。

所以我准备试读下王争的课程《数据结构与算法》,go go go。