1. 20日掌握算法导论计划概览
我将在接下来的20天掌握算法导论全部内容(2019.1/10-2019/1/29)
算法导论(800页)
○ 作者简介:
§ C L R S,包括图灵奖得主在内的四位MIT教授
○ 计划时间:(2019.1/10-2019/1/29) (这是2年修完清华6个CS硕士学位之第112天~131天)
○ 学习时间:平均每天至少核心学习时间达到14小时
○ 目前基础: 之前仅学过5天的算法,因此算法导论80%的内容我是没有学过的。
2. 学习目标详述
大致描述
- 本教材是算法领域最牛逼的教材,源自于麻省理工学院的算法课程
- 20日计划 主要是在20天的时间搞定MIT的2门算法课程(MIT 6.006和6.046J,两门课程分别是MIT本科生算法课以及硕士生的算法设计课程),并且精读整本《算法导论》。详细课程大纲见下文
- MIT算法视频我只会抽一部分看,我的学习节奏和顺序主要是按照算法导论这本书来,而不是按照MIT的两门课程来。
本课程学习要求
1.要求深度掌握知识,理解知识点背后本质,知其所以然。对书中定理能够写出证明过程。
2.不借助任何资料的情况下能够在1小时内完整详尽复述书中所有知识点, 6个月内知识点遗忘率低于70%;对于任何遗忘了的知识点,通过复习能够在10分钟内彻底回忆起来。
3.完成《算法导论》至少50%习题
4.完成MIT的算法系列课程的教学目标(具体的教学目标参见下文)
课程大纲
本课程主要按照麻省理工大学的培养目标进行学习
第1门课《算法》:学习目标
本课程的内容相当于本科生的第二门算法课,本质上仍然是初级算法课程。
本课程主要内容基本上和《算法导论》上半本差不多。
本课程官方培养方案:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-spring-2008/
课程教材:算法导论
课程描述:本课程介绍了计算问题的数学建模。它涵盖了用于解决这些问题的常用算法,算法范例和数据结构。该课程强调算法和编程之间的关系,并介绍这些问题的基本性能测量和分析技术。
课程大纲如下
L1 介绍和文件距离 R1 Python中的文档距离(docdist {1,2,3,4} .py) L2 mergesort
R2 Python成本模型,渐近符号和mergesort的评论 二进制搜索树 L3 飞机调度,二叉搜索树 R3 二进制搜索树
L4 平衡的二叉搜索树 R4 AVL树(平衡二叉搜索树) L5 Hashing I:链接,哈希函数 问题集1 R5 Hashing
in Python,可变性 L6 Hashing II:表倍增,Karp-Rabin L7 Hashing III:开放式寻址 排序
L8 排序堆 L9 排序II:堆 问题集2 L10 排序III:下限,线性时间排序 R9 测验复习:有趣的问题 测验1
L11 排序IV:稳定排序,基数排序 R10 计数,基数和铲斗分选,气体模拟 L12 搜索I:图搜索,表示和应用程序
L13 搜索II:广度优先搜索和深度优先搜索 问题集3 L14 搜索III:拓扑排序和NP完整性 R11 广度优先搜索和深度优先搜索
L15 最短路径I:介绍 R12 协助解决问题 L16 最短的路径II:贝尔曼 - 福特 问题集4
R13 通用最短路径算法:概念,属性 Bellman-Ford:例子,负成本周期 L17 最短的路径III:Dijkstra
R14 实践Dijkstra:伪代码,前置条件,示例,为什么它的工作原理 L18 最短的路径IV:Dijkstra加速
R15 Dijkstra的数组实现 测验2动态编程 L19 动态编程I:memoization,Fibonacci,Crazy
Eights,猜测
R16 实践动态编程:重要思想,Fibonacci中的memoization,疯狂卡片,Dijkstra和Bellman-Ford算法作为动态编程
L20 动态编程II:最长公共子序列(LCS),父指针 R17 更有活力的节目:击败超级马里奥兄弟,获得积分测试(LCS),Crazy
Eights L21 动态编程III:文本对齐,括号,背包,伪多项式时间,俄罗斯方块训练 问题集5
R18 更动态的编程:最大和子阵,更多俄罗斯方块 L22 动态编程IV:钢琴指法,结构DP(树),顶点覆盖,支配集,以及更多
R19 背包及其变体,结构动态编程:用模板覆盖树,支配集 R20 动态编程实践:实时Python编码,支配集,结构动态编程:用模板覆盖树
L24 数字II 问题集6 R21 划分和征服与动态编程问题:矩阵乘法,塔,最大和子阵,最近对
R22 数字评论,Strassen的矩阵乘法算法
第2门课(算法与复杂性):学习目标
本课程是一门中高级算法课程,一般作为研究生的算法课程。重点是设计和分析高效算法的教学技巧,强调应用方法。主题包括分而治之,随机化,动态编程,贪婪算法,增量改进,复杂性和加密。
本课程主要内容基本上和《算法导论》下半本差不多。
本课程学习要求主要参照MIT6.046J课程:
本课程官方培养方案:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-854j-advanced-algorithms-fall-2008/
书本封面

5. 什么是主宰力量系列计划?
本次20日计划属于主宰力量系列计划,下面简略介绍一下主宰力量计划。
• 主宰力量系列计划:2年精读彻底掌握40本国外计算机类类传世之作(不计内容重复的)
• 什么是主宰力量系列计划?
○ 我将在2年修完清华6门CS类硕士学位的过程中 顺便 精读彻底掌握40本国外计算机类类传世之作
○ 内容大致重复的经典教材我只会选读其中一本
○ 这些教材主要是选自机械工业出版社的《计算机科学系列丛书》
○ 学习的主要方式是直接撸书,基本上不会看教学视频。
○ 我将会录制主宰力量系列计划的实况学习视频并上传至B站(视频总时长至少5000个小时)
○ 每本传世之作我会给出大量详细的思维导图笔记上传至我的知识星球
○ 大部分教材如下图所示

逗乐图片



本文是为期20天的算法导论学习计划,目标是掌握MIT的两门算法课程,涵盖排序、搜索、最短路径、动态编程等内容,并基于《算法导论》进行深入学习。计划中还包括了对高级算法的设计和分析,如分治、随机化等。
1170

被折叠的 条评论
为什么被折叠?



