极客时间服务号
算法到底有多重要,想必不用我多说。但是算法学了这么多次,你真的学会了吗?经常会有人问我下面这些问题:
如果你也有同样的疑问,那说明你真没学好算法。我们学习算法到底是在学什么?
我认为,学算法最重要的不是学习这个算法本身或者刷题目,而是要学习这类算法具体的设计过程。就像到了健身房里面,你要做的第一件事情,不是马上去举铁,而是找个健身教练问问每一块肌肉的训练方法。
因此《常用算法 25 讲》这门课,我特意选择了在实际工作中,经常会被用到的三类算法,分别是排序算法、查找算法与搜索算法。我会从这些常用算法出发,带你深入学习它们的设计过程,让你从不懂算法、不了解算法,到掌握算法,并且拥有自学算法的能力。
结合以上,专栏一共分为三个模块。
排序篇:将从快速排序算法、快排优化、快速选择算法,讲到堆排序、归并排序,以及由这些排序延伸出来的一些趣味算法。除此之外,针对每个算法,会搭配一些经典的面试题,给你详细讲解它能解决的问题、算法流程、优化拓展,以及它所需要的数据结构基础。从中,你不仅能学会这些排序算法,还能学会它们所映射出来的算法思维方式。毕竟,掌握算法思维,才是算法学习的重中之重。
查找搜索篇:会分成查找和搜索两个部分讲解。
在查找部分,主要带你学习红黑树与哈希表。为了帮助你理解,会从最基础的排序二叉树入手,学会红黑树的,以及哈希表的映射思想。在此基础之上,你还能得到一份简单易学的红黑树教程。从而帮助你更好地理解和使用语言中的相关功能模块,解决工作中的即时问题。
搜索算法部分,会结合迷宫问题来讲解两种经典,且非常基础的搜索算法,深度优先搜索和广度优先搜索。保证你学起来不枯燥。
进阶篇:带你综合运用我们所学的内容,一起来求解数独游戏、2-Sum 问题、计算 sqrt。并且,还为你准备了一个比较有挑战的毕业设计,让你把专栏中学到的所有算法和程序设计方面的技巧全部应用上。在夯实基础之后,带你进一步提升自己的算法能力。
胡光,原百度高级算法研发工程师,写了 13 年程序,拿过 ACM 亚洲区金牌,进过两次全球总决赛,百度就职期间还开发了部门内部的第一版推理引擎,并顺利在人物关系推理等应用场景中落地实施。
后自己创业,建立海贼科技有限公司,致力于弥补二三线城市与一线城市之间教育资源的差距,目前在帮助众多学生从零开始学编程,从而让他们进入互联网公司从事相关职业。他教导的学生中,双非院校中的本科生最高毕业薪资包 59.5 万,211 类院校学生毕业平均薪资达到 35 万。