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 out that allowing random choices can yield a tremendous i
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 call being smaller than the original array A. However, whi
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 is an
algorithmic paradigm in which one solves a problem
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 locally optimal decision at each stage.
Example. We wi
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. This course is designed to build on the material of 6.0
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 addressed, so that inserting,
deleting, and looking up
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
deterministic algorithms.
Randomized algorithm:
Determisti
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 Kruskals algorithm for nding an MST in a connected,
weighted
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 nonnegative,
then repeated application of Dijkstras al
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, is an example of the divide-and-conquer paradigm. Actual