Lecture 8 Notes: Randomized
Algorithms I
Supplemental reading in CLRS: Chapter 5; Section 9.2
Should we be allowed to write an algorithm whose behavior depends on the outcome of a coin
ip? It turns ou
Lecture 2 Notes: Recap & Interval
Scheduling
2.1
Recap of Median Finding
Like M ERGE -S ORT , the median-of-medians algorithm S ELECT calls itself recursively, with the
argu-ment to each recursive cal
Lecture 6 Notes: All-Pairs Shortest Paths
I
Supplemental reading in CLRS: Chapter 25 intro; Section 25.2
6.1
Dynamic Programming
Like the greedy and divide-and-conquer paradigms, dynamic programming i
Lecture 3 Notes: Minimum Spanning
Trees Part I
3.1
Greedy Algorithms
As we said above, a greedy algorithm is an algorithm which attempts to solve an
optimization problem in multiple stages by making a
Lecture 1 Notes: Introduction &
Median Finding
1.1
The Course
Hello, and welcome to 6.046 Design and Analysis of Algorithms. The prerequisites for this course are
1. 6.006 Introduction to Algorithms.
Lecture 10 Notes: Hashing and
Amortization
Supplemental reading in CLRS: Chapter 11; Chapter 17 intro; Section 17.1
10.1
Arrays and Hashing
Arrays are very useful. The items in an array are statically
Lecture 9 Notes: Randomized
Algorithms Part II
Supplemental reading in CLRS: Appendix C; Section 7.3
After Lecture 8, several students asked whether it was fair to compare randomized algorithms to
det
Lecture 4 Notes: Minimum Spanning
Trees Part II
Supplemental reading in CLRS: Chapter 23; Section 16.2; Chapters 6 and 21
4.1
Implementing Kruskals Algorithm
In the previous lecture, we outlined Krusk
Lecture 7 Notes: All-Pairs Shortest Paths
Part II
Supplemental reading in CLRS: Section 25.3
7.1
Johnsons Algorithm
The FloydWarshall algorithm runs in V 3 time. Recall that, if all edge weights are
Lecture 5 Notes: Fast Fourier Transform
Supplemental reading in CLRS: Chapter 30
The algorithm in this lecture, known since the time of Gauss but popularized mainly by Cooley and
Tukey in the 1960s, i