Skip to content

mz09code/brutal-algorithm-class

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

最强算法班 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 ✔️ 32小时 4 小时 2200
B ✔️ 32小时 8 小时 3100
C ✔️ 32小时 12 小时 3600
D ✔️ 32小时 X 1200

所有一对一的预约需要提前一天。2个月课程结束之后,没有预约并使用的一对一时间可在一周以内提出退款申请。

作业

每次都有课后作业。你可以用C、CPP、Java、Go、Python、JavaScript、甚至 PHP 来作答。提交到 GitHub。每一份作业我都会认真批改。

如何提交作业

第一周

预习课 1

课程视频

预习课1:插入排序

预习课 2

预习课2:递归、函数式编程、动态规划

第 1 课

  • 数据结构与算法
  • 数组
  • 随机算法之洗牌算法 Shuffling

第 2 课

  • 初探递归:递归与算法
  • 递归之归并排序
  • 初探复杂度分析:复杂度分析与算法,O(上限)、Θ(类似置信区间)、Ω(下限)

第 3 课

  • 再谈递归:递归与数据结构
  • 链表 Linked List
  • 再谈复杂度分析:复杂度分析与数据结构

第二周

第 4 课

  • 快排
  • 数组的二分搜索

第 5 课

Let's plant trees!

  • 树状结构
  • 二叉树
  • 深度优先搜索、广度优先搜索 DFS、BFS
  • 前、中、后序遍历
  • Level Order Traversal

第 6 课

  • 二叉搜索树
  • 树状结构的扁平化实现(用数组实现树)

第三周

第 7 课

  • 堆排序 Heap Sort
  • 优先级队列 Priority Queue

第 8 课

植树非一周之功!

  • 平衡的二叉树
  • AVL树

第 9 课

  • 红黑树

第四周

第 10 课

中国有哈希!Hash is cooler than Hip Hop

  • 哈希表
  • 哈希集合
  • Separate Chaining
  • Open Addressing
  • Dynamic Resizing

第 11 课

  • 图 Graph
  • 图的三种内存表示形式
  • 图版本的深度优先搜索、广度优先搜索 DFS、BFS

第 12 课

  • 最短路径 Shortest Path
  • 迪杰斯特拉算法 Dijkstra's algorithm
  • 贝尔曼-福特算法 Bellman Ford's Algorithm

第五周

继续学习图算法

第 13 课

  • 拓扑排序 Topological Sort
  • Minimum Spanning Tree

第 14 课

  • Union Find

第 15 课

  • Minimal Cut / Maximal Flow
  • 子图匹配 Subgraph matching

第六周

动态规划,做一个时间刺客!

第 16 课

  • 初探动态规划
  • 递归与循环的关系
  • 递归式循环
  • 斐波那契数列

第 17 课

  • 再看动态规划
  • Subset Sum Problem
  • 0-1 Knapsack Problem

第 18 课

  • 子字符串问题
  • 子序列问题
  • Edit Distance
  • 分词问题和 Unicode 算法 Word Break Problem and Unicode Algorithm

第七周

开启语言世界的大门

第 19 课

  • 有限状态机
  • 正则表达式
  • 递归思维(函数式) vs 循环思维(过程式)

第 20 课

  • 词法分析 Lexical Analysis

第 21 课

语法很重要

  • Context Free Language
  • 语法解析 Grammar Parsing

第八周

贪得无厌,必有算法!Greedy Algorithm

第 22 课

  • 贪婪算法

第 23 课

  • 压缩算法
  • 哈夫曼编码

第 24 课

  • 哈夫曼解码

FAQ 常见问题

用什么语言?

这是一节算法课,语言不是根本问题。课件会用JS因为我有准备一些前端算法可视化。作业大家可以用C, CPP, Java, Go, Python, JavaScript, 甚至 PHP。我都可以批改。

GitPod

About

我所教的课《最强算法班》代码笔记

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 33.9%
  • TypeScript 25.3%
  • Python 24.3%
  • HTML 11.1%
  • Go 5.4%