F5ea888ed060c948c842a4c4b8ed8d8e
校招数据结构与算法学习指南 导学

学习数据结构和算法,为什么这么难?

《数据结构与算法》——一门令无数计算机专业学生头疼的课程。与其他课程最大的不同就是,数据结构与算法的学习过程是极其“枯燥”、“无聊”的。你不仅要通过编码验证每一个数据结构的特性,更要将这些特性牢记在脑中。更让人“痛苦”的是——数据结构与算法没有所谓的必考题,这也就意味着当你记住每个数据结构的特性还不够,更要在实践中根据实际情况去判断究竟使用什么算法,时间复杂度、空间复杂度才能达到最后解。

举个最简答的例子,数组——一个看似极其简单的数据结构。我们从书本上可以得知它可以通过下标获取对应的数据,可以遍历获取所有的数值......然而,当我们真正面对一道数据结构算法题时,这些知识只能让我们评估使用数据是否合适,如何解答问题,才是最为重要的。

这也就引出了为什么学习数据结构为什么这么困难:从书本中学到的仅仅是数据结构的特性。而这种特性仅仅是日常考察算法能力的最基础的知识。

为什么校招中要重视数据结构与算法学习?

最重要的一点:无论是校招笔试和面试,算法题往往是企业和面试官最为关注的部分

纵观目前较为有名的互联网公司校招笔试和面试,大家就会发现一个很普遍的现象:在笔试阶段,往往会有2-3道算法题作为主观题,其分数占比也最大;在面试阶段,面试官往往以一道算法题做为 “开胃小菜”,初步评估候选者的能力水平。

以作者最为熟悉的 Java 开发工程校招为例。在笔试阶段,一套完整的笔试试卷主要分为 30道左右的选择题和3道算法题。如果你想通过笔试阶段的选拔,那你的算法至少要 OC 1.5题左右。因此在笔试阶段,**笔试成绩= Java 基础知识 + 算法 **。在面试阶段,作者通常会对候选者提2道左右的算法题,评估候选者的逻辑能力。在面试阶段,面试成绩 = Java 知识 + 实战能力 + 算法

随着校招的竞争越来越激烈,各大公司也加大了对应届开发人员的算法要求。从当初的手写快排,到现在的简述红黑树,可以预见的是,算法能力在校招中的重要性不仅不会降低,反而会越来越提高。

该怎么准备校招的数据结构与算法题?

top Created with Sketch.