brutal-algorithm-class
brutal-algorithm-class copied to clipboard
我所教的课《最强算法班》代码笔记
最强算法班 2020
大家好,这是《最强算法班》2020年的课程。在为期 2 个月的学习里,我会带大家从算法 零基础 或者计算机知识不深,学习所有基本的 数据结构和算法 ,并且交给大家 算法分析和算法设计 的思维。让大家在接下来的计算机科学和软件工程职业生涯的技术之路上 畅通无阻。
刷题不是本课程的目的。学习完本课程之后,有能力做困难的编程题仅仅是一个副作用。
想报名的同学加 QQ 群:538935270 或者我QQ:1070494510
算法可视化游乐场 Algorithm Playground
https://creatcodebuild.github.io/brutal-algorithm-class/visual/visual.html
课程大纲
本课程5月19日(周二)开课,一共2个月(8周)24节直播课,每节课 80 分钟。课程还包括与老师的 一对一辅导 课。
每周直播课时间周二、周四、周六20:30-21:30
目前有 4 个套餐(支持花呗)
套餐 | 直播课 | 一对一辅导 | 价格 |
---|---|---|---|
A | :heavy_check_mark: 32小时 | 4 小时 | 2200 |
B | :heavy_check_mark: 32小时 | 8 小时 | 3100 |
C | :heavy_check_mark: 32小时 | 12 小时 | 3600 |
D | :heavy_check_mark: 32小时 | X | 1200 |
所有一对一的预约需要提前一天。2个月课程结束之后,没有预约并使用的一对一时间可在一周以内提出退款申请。
作业
每次都有课后作业。你可以用C、CPP、Java、Go、Python、JavaScript、甚至 PHP 来作答。提交到 GitHub。每一份作业我都会认真批改。
如何提交作业
第一周
预习课 1
课程视频
预习课 2
第 1 课
- 数据结构与算法
- 数组
- 随机算法之洗牌算法 Shuffling
第 2 课
- 初探递归:递归与算法
- 递归之归并排序
- 初探复杂度分析:复杂度分析与算法,O(上限)、Θ(类似置信区间)、Ω(下限)
第 3 课
- 再谈递归:递归与数据结构
- 链表 Linked List
- 再谈复杂度分析:复杂度分析与数据结构
第二周
第 4 课
- 快排
- 快排的复杂度分析
第 5 课
Let's plant trees!
- 数组的二分搜索
- 树状结构
- 二叉树
- 二叉搜索树
- 深度优先搜索 DFS
- 前、中、后序遍历
第 6 课
植树非一周之功!
- 将深度优先搜索从递归翻译成循环
- 广度优先搜索 BFS
- Level Order Traversal
第三周
第 7 课
- 第二次作业评讲
第 8 课
- 练习课(咱编程的人,有啥不一样?说不做题,其实也做题)
第 9 课
- 平衡的二叉树
- AVL树
- 堆排序 Heap Sort
- 优先级队列 Priority Queue
第四周
第 10 课
中国有哈希!Hash is cooler than Hip Hop
- 哈希表
- 哈希集合
- Separate Chaining
- Open Addressing
- Dynamic Resizing
第 11 课
- 图 Graph
- 图的三种内存表示形式
- 图版本的深度优先搜索、广度优先搜索 DFS、BFS
第 12 课
- 最短路径 Shortest Path (暴力解法)
第五周
继续学习图算法
第 13 课
- 练习课
第 14 课
- 拓扑排序 Topological Sort
第 15 课
- 初探动态规划
- 递归与循环的关系
- 递归式循环
- 斐波那契数列
- 子集合之和问题 Subset Sum Problem
第六周
动态规划,做一个时间刺客!
第 16 课
- 再看动态规划
- 0-1 Knapsack Problem
第 17 课
- 子字符串问题
- 子序列问题
- Edit Distance
- 分词问题和 Unicode 算法 Word Break Problem and Unicode Algorithm
第 18 课
- 职业经验分享
第七周
第 19 课
- 哈夫曼编码介绍
第 20 课
- 正侧表达式
- 词法分析 Lexical Analysis
第 21 课
语法很重要
- Context Free Language
- 语法解析 Grammar Parsing (最基础的方法)
第八周
贪得无厌,必有算法!Greedy Algorithm
第 22 课
- 哈夫曼编码代码分享
第 23 课
第 24 课
FAQ 常见问题
用什么语言?
这是一节算法课,语言不是根本问题。课件会用JS因为我有准备一些前端算法可视化。作业大家可以用C, CPP, Java, Go, Python, JavaScript, 甚至 PHP。我都可以批改。