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. nodejs-2.httpfuwu

    一.使用nodejs的http服务:处理 "请求或响应" 数据 要使用 HTTP 服务器与客户端,需要 require('http'). Node.js 中的 HTTP 接口被设计 ...

  2. fixed元素随滚动条无抖动滚动

    页面上用fixed定位一个元素,随滚动条滚动位置不变,最开始我只用了css给元素身上写上fixed属性,发现滚动时元素会发生抖动,随后我就在网上找到解决办法,封装了个方法,如下: Css部分 此部分是 ...

  3. java.sql.SQLException: Incorrect string value: '\xE5\xBC\xA0\xE9\x9B\xB7' for column 'content' at row 1

    这个问题主要是由于该字段及腹肌编码不正确导致的,一般新建的表如果没设置就会是latin1字符集需要将表改为utf8字符集,再将报错的列的字符集改为utf8即可,修改命令如下所示: ALTER TABL ...

  4. 树莓派.安装Firefox浏览器

    sudo apt-get install firefox-esr 要做全屏效果的话, 可以加装插件FF Fullscreen 插件地址: https://addons.mozilla.org/en-U ...

  5. 第二天 Java语言基础

    一.如何定义Java中的类 Java代码都定义在类中,类由class来定义,区分public class和class: 二.main方法的作用 main方法是程序的入口:保证程序的独立运行:被JVM调 ...

  6. Go缓存DNS

    Go里面的DNSclient没有带任何的缓存,语言层面没有任何的缓存,但是我们可以通过下面这样的代码来 这样当我们调用http.Client的时候就会采用这个缓存的ip了,里面用到的dnscache是 ...

  7. session.go

    package {             so.ttl = ttl         }     } } // WithContext assigns a context to the session ...

  8. NOI前的考试日志

    4.14 网络流专项测试 先看T1,不会,看T2,仙人掌???wtf??弃疗.看T3,貌似最可做了,然后开始刚,刚了30min无果,打了50分暴力,然后接着去看T1,把序列差分了一下,推了会式子,发现 ...

  9. BZOJ_4765_普通计算姬_分块+dfs序+树状数组

    BZOJ_4765_普通计算姬_分块 Description "奋战三星期,造台计算机".小G响应号召,花了三小时造了台普通计算姬.普通计算姬比普通计算机要厉害一些 .普通计算机能 ...

  10. POJ_3342_Party at Hali-Bula_树形DP

    POJ_3342_Party at Hali-Bula_树形DP 题意:直接上司和本人不能同时参加,求最多参加人数,并回答是否唯一解. 分析:常规树形DP,需要再维护一下选/不选当前点取得最大值时是否 ...