Introduction to Algorithms 2nd ed. Cambridge, MA: MIT Press, 2001. ISBN: 9780262032933.

Introduction and document distance

L1

Introduction and document distance

CLRS, chapters 1-3

L2

More document distance, mergesort

CLRS, sections 11.1-11.2

Binary search trees

L3

Airplane scheduling, binary search trees

CLRS, chapter 10 and sections 12.1-12.3

L4

Balanced binary search trees

CLRS, sections 13.1 and 13.2 for a different approach (red-black trees)

Hashing

L5

Hashing I: chaining, hash functions

L6

Hashing II:
table doubling, Karp-Rabin

CLRS,
chapter 17 and section 32.2

L7

Hashing
III: open addressing

CLRS,
section 11.4 (and 11.3.3 and 11.5 if interested)

Sorting

L8

Sorting I:
heaps

CLRS,
sections 2.1-2.3 and 6.1-6.2

L9

Sorting II:
heaps

CLRS,
sections 6.1-6.4

L10

Sorting
III: lower bounds, linear-time sorting

CLRS,
sections 8.1-8.4

L11

Sorting IV:
stable sorting, radix sort

Searching

L12

Searching
I: graph search, representations, and applications

CLRS,
sections 22.1-22.3 and B.4

L13

Searching
II: breadth-first search and depth-first search

CLRS,
sections 22.2-22.3

L14

Searching
III: topological sort and NP-completeness

CLRS,
sections 22.4 and 34.1-34.3 (at a high level)

Shortest
paths

L15

Shortest
paths I: intro

CLRS,
chapter 24 (intro)

L16

Shortest
paths II: Bellman-Ford

L17

Shortest
paths III: Dijkstra

CLRS,
sections 24.2-24.3

L18

Shortest
paths IV: Dijkstra speedups

Wagner,
Dorothea, and Thomas Willhalm. "Speed-Up Techniques for Shortest-Path
Computations." In Lecture Notes in Computer Science: Proceedings of
the 24th Annual Symposium on Theoretical Aspects of Computer Science
.
Berlin / Heidelberg: Springer, 2007. ISBN: 9783540709176. Read up to section
3.2.

Dynamic
programming

L19

Dynamic programming
I: memoization, Fibonacci, Crazy Eights, guessing

CLRS,
chapter 15

L20

Dynamic
programming II: longest common subsequence, parent pointers

L21

Dynamic
programming III: text justification, parenthesization, knapsack,
pseudopolynomial time, Tetris training

L22

Dynamic
programming IV: piano fingering, structural DP (trees), vertex cover,
dominating set, and beyond

For fun,
see papers on piano fingering and polyphonic piano fingering via DP:

Parncutt,
Richard, et al. "An Ergonomic Model of Keyboard Fingering for Melodic
Fragments." Music Perception 14, no. 4 (1997): 341-382.

Al Kasimi,
Alia, Eric Nichols, and Christopher Raphael. "A Simple Algorithm for
Automatic Generation of Polyphonic Piano Fingerings." In Proceedings
of the 8th International Conference on Music Information Retrieval
, 2007,
pp. 355-356.

For fun,
watch the Metamorphosis of the Cube video,
which illustrates a folding DP.

Numerics

L23

Numerics I

L24

Numerics II

Beyond
6.006

L25

Beyond
6.006: follow-on classes, geometric folding algorithms

Reading task(Introduction to Algorithms. 2nd)的更多相关文章

  1. [翻译] 提升树算法的介绍(Introduction to Boosted Trees)

    [翻译] 提升树算法的介绍(Introduction to Boosted Trees) 1. 有监督学习的要素 XGBoost 适用于有监督学习问题.在此类问题中,我们使用多特征的训练数据集 \(x ...

  2. 图形上下文导论(Introduction to SWT Graphics)zz

    图形上下文导论(Introduction to SWT Graphics) 摘要: org.eclipse.swt.graphics包(package),包含了管理图形资源的类.只要实现了org.ec ...

  3. 6.006 Introduction to Algorithms

    课程信息 6.006 Introduction to Algorithms

  4. 算法导论(Introduction to Algorithms )— 第十二章 二叉搜索树— 12.1 什么是二叉搜索树

    搜索树数据结构支持很多动态集合操作,如search(查找).minmum(最小元素).maxmum(最大元素).predecessor(前驱).successor(后继).insert(插入).del ...

  5. note of introduction of Algorithms(Lecture 3 - Part1)

    Lecture 3(part 1) Divide and conquer 1. the general paradim of algrithm as bellow: 1. divide the pro ...

  6. hdu 1885 Key Task(bfs+状态压缩)

    Problem Description The Czech Technical University years of its existence . Some of the university b ...

  7. hdu 3572 Task Schedule (dinic算法)

    pid=3572">Task Schedule Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  8. C#多线程编程のTask(任务全面解析)

    Task是.NET4.0加入的,跟线程池ThreadPool的功能类似,用Task开启新任务时,会从线程池中调用线程,而Thread每次实例化都会创建一个新的线程. 我们可以说Task是一种基于任务的 ...

  9. 课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)—— 2、10个测验题

    1.What does the analogy “AI is the new electricity” refer to?  (B) A. Through the “smart grid”, AI i ...

随机推荐

  1. 玩转CSS3(一)----CSS3实现页面布局

    请珍惜小编劳动成果,该文章为小编原创,转载请注明出处. 摘要:     CSS3相对CSS2增加了一些新的布局方式:多栏布局和盒子布局.在这篇文章中,将对CSS2的布局进行简单的回忆,并总结CSS3的 ...

  2. session会话管理

    session会话和cookie一起被称为会话跟踪技术,主要通过保存在服务器端的session数据和客户端浏览器的cookie数据共同完成用户访问服务器的足迹记录. 1. 什么是会话 会话sessio ...

  3. GitHub 系列之「向GitHub 提交代码」

    1.SSH 你拥有了一个 GitHub 账号之后,就可以自由的 clone 或者下载其他项目,也可以创建自己的项目,但是你没法提交代码.仔细想想也知道,肯定不可能随意就能提交代码的,如果随意可以提交代 ...

  4. IntelliJ IDEA(十) :常用操作

    IDEA功能详细,快捷键繁多,但是实际开发时不是所有都能用上,如果我们熟悉一些常用的也足够满足我们日常开发了,多的也只是提高我们的B格. 1.自定义主题 IDEA默认的主题有三款,分别是Intelli ...

  5. 关于crontab命令

    crontab命令 crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供 ...

  6. BZOJ_1098_[POI2007]办公楼biu_链表优化BFS

    BZOJ_1098_[POI2007]办公楼biu_链表优化BFS Description FGD开办了一家电话公司.他雇用了N个职员,给了每个职员一部手机.每个职员的手机里都存储有一些同事的 电话号 ...

  7. BZOJ_4128_Matrix_矩阵乘法+哈希+BSGS

    BZOJ_4128_Matrix_矩阵乘法+哈希+BSGS Description 给定矩阵A,B和模数p,求最小的x满足 A^x = B (mod p) Input 第一行两个整数n和p,表示矩阵的 ...

  8. java基础系列之ConcurrentHashMap源码分析(基于jdk1.8)

    1.前提 在阅读这篇博客之前,希望你对HashMap已经是有所理解的,否则可以参考这篇博客: jdk1.8源码分析-hashMap:另外你对java的cas操作也是有一定了解的,因为在这个类中大量使用 ...

  9. Eclipse Debug调试遇到的问题

    在使用Debug模式前,一定要先打好断点.快捷调试方法:   在使用过程中,可以只保留Console,Variables,Debug窗口,把其他无用的窗口最小化掉,或者删掉即可.如果要恢复删掉的试图, ...

  10. 金三银四,今年Python就业前,看看这篇文章找找感觉

    Python就业行情和前景分析之一爬取数据 最近Python大热,就想要分析一下相关的市场需求,看一下Python到底集中在哪些城市,企业对Python工程师的一些需求到底是怎样的,基于此,爬取了国内 ...