你将获得
- 排序+查找,两大类算法详解
- 50+算法进阶必备知识点
- 学习路径和高效刷题方法
- 一线大厂算法面试题精讲
课程介绍
「极客时间出品」
算法到底有多重要,想必不用我多说。但是算法学了这么多次,你真的学会了吗?经常会有人问我下面这些问题:
- 我知道算法很重要,但是工作中好像总也用不到。
- 我为了面试学算法,刷了那么多题,遇到新题还是不会怎么办?
- 这么多算法知识,总是学了又忘,忘了又学,怎么才算学会呢?
如果你也有同样的疑问,那说明你真没学好算法。我们学习算法到底是在学什么?
我认为,学算法最重要的不是学习这个算法本身或者刷题目,而是要学习这类算法具体的设计过程。就像到了健身房里面,你要做的第一件事情,不是马上去举铁,而是找个健身教练问问每一块肌肉的训练方法。
因此《常用算法25讲》这门课,我特意选择了在实际工作中,经常会被用到的三类算法,分别是排序算法、查找算法与搜索算法。我会从这些常用算法出发,带你深入学习它们的设计过程,让你从不懂算法、不了解算法,到掌握算法,并且拥有自学算法的能力。
课程模块设计
结合以上,专栏一共分为三个模块。
排序篇:将从快速排序算法、快排优化、快速选择算法,讲到堆排序、归并排序,以及由这些排序延伸出来的一些趣味算法。除此之外,针对每个算法,会搭配一些经典的面试题,给你详细讲解它能解决的问题、算法流程、优化拓展,以及它所需要的数据结构基础。从中,你不仅能学会这些排序算法,还能学会它们所映射出来的算法思维方式。毕竟,掌握算法思维,才是算法学习的重中之重。
查找搜索篇:会分成查找和搜索两个部分讲解。
在查找部分,主要带你学习红黑树与哈希表。为了帮助你理解,会从最基础的排序二叉树入手,学会红黑树的,以及哈希表的映射思想。在此基础之上,你还能得到一份简单易学的红黑树教程。从而帮助你更好地理解和使用语言中的相关功能模块,解决工作中的即时问题。
搜索算法部分,会结合迷宫问题来讲解两种经典,且非常基础的搜索算法,深度优先搜索和广度优先搜索。保证你学起来不枯燥。
进阶篇:带你综合运用我们所学的内容,一起来求解数独游戏、2-Sum 问题、计算sqrt。并且,还为你准备了一个比较有挑战的毕业设计,让你把专栏中学到的所有算法和程序设计方面的技巧全部应用上。在夯实基础之后,带你进一步提升自己的算法能力。