brutal-algorithm-class icon indicating copy to clipboard operation
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

课程视频

预习课1:插入排序

预习课 2

预习课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。我都可以批改。

GitPod