15-451 Algorithms, Fall 2012
Homework # 2
due: Mon-Wed, September 24-26, 2012
Ground rules:
This is an oral presentation assignment. You should work in groups of three. At some
point before Saturday,
Lecture 2
Selection (deterministic &
randomized): nding the median in
linear time
2.1
Overview
Given an unsorted array, how quickly can one nd the median element? Can one do it more quickly
than by so
15-451 Algorithms, Fall 2012
Homework # 5
due: Tuesday November 6, 2012
Please hand in each problem on a separate sheet and put your name and recitation (time
or letter) at the top of each sheet. You
15-451 Algorithms, Fall 2012
Homework # 3
Due: October 9, 2012
Please hand in each problem on a separate sheet and put your name and recitation (time
or letter) at the top of each page. You will be ha
15-451 Algorithms, Fall 2012
Homework # 1
Due: September 11, 2012
Please hand in each problem on a separate sheet and put your name and recitation (time
or letter) at the top of each page. You will be
15-451 Algorithms, Fall 2012
Homework # 6
Due: Sun-Wed, Nov 18-21, 2012
Ground rules:
This is an oral presentation assignment. You should work in groups of three. At some
point before Saturday, Nov 1
15-451 Algorithms, Fall 2012
Homework # 4
Due: Wed-Fri, October 24-26, 2012
Ground rules:
This is an oral presentation assignment. You should work in groups of three. At some
point before Monday, Oct
15-451 Algorithms, Fall 2012
Homework # 7
due: Thursday December 6, 2012
Please hand in each problem on a separate sheet and put your name and recitation (time
or letter) at the top of each sheet. You
Lecture 4
Selection (deterministic &
randomized): nding the median in
linear time
4.1
Overview
Given an unsorted array, how quickly can one nd the median element? Can one do it more quickly
than by so
Lecture 3
Probabilistic Analysis and
Randomized Quicksort
3.1
Overview
In this lecture we begin by introducing randomized (probabilistic) algorithms and the notion of
worst-case expected time bounds.
Lecture 5
Concrete models and tight
upper/lower bounds
5.1
Overview
In this lecture, we will examine some simple, concrete models of computation, each with a precise
denition of what counts as a step,
Lecture 11
Dynamic Programming
11.1
Overview
Dynamic Programming is a powerful technique that allows one to solve many dierent types of
problems in time O(n2 ) or O(n3 ) for which a naive approach wou
Lecture 7
Universal and Perfect Hashing
7.1
Overview
Hashing is a great practical tool, with an interesting and subtle theory too. In addition to its use as
a dictionary data structure, hashing also c
Lecture 5
Amortized Analysis
5.1
Overview
In this lecture we discuss a useful form of analysis, called amortized analysis, for problems in which
one must perform a series of operations, and our goal i
Lecture 11
Dynamic Programming II
11.1
Overview
In this lecture we continue our discussion of dynamic programming, focusing on using it for a
variety of path-nding problems in graphs. Topics in this l
Lecture 12
Network Flow I
12.1
Overview
In these next two lectures we are going to talk about an important algorithmic problem called the
Network Flow Problem. Network ow is important because it can b
15-451/651: Design & Analysis of Algorithms
Lecture #10 (draft!)
September 26, 2013
Dynamic Programming is a powerful technique that allows one to solve many dierent types of
problems in time O(n2 ) o
15-451/651: Design & Analysis of Algorithms
Lecture #14
October 10, 2013
last changed: October 21, 2013
Todays highlights:
1
Flows and preows
The Push-Relabel Algorithm
An improved algorithm using the
15-451/651: Design & Analysis of Algorithms
Lecture #13
October 8, 2013
last changed: October 8, 2013
The Ford-Fulkerson algorithm discussed in the last class takes time O(F (n + m), where F is the
va
15-451/651: Design & Analysis of Algorithms
Lecture #9
September 24, 2013
Preview of coming attractions:
An introduction to the data streaming model, and its concerns.
An algorithm for heavy hitters
15-451/651: Design & Analysis of Algorithms
Lecture #4 (draft!)
September 5, 2013
Todays menu:
Randomized Algorithms that may make mistakes (though rarely).
The Minimum Cut problem.
A simple, fast
Lecture 3
Concrete models and tight
upper/lower bounds
3.1
Overview
In this lecture, we will examine some simple, concrete models of computation, each with a precise
denition of what counts as a step,
Appendix A
Asymptotic Analysis and Recurrences
A.1
Overview
We discuss the notion of asymptotic analysis and introduce O, , , and o notation. We then turn
to the topic of recurrences, discussing sever
Lecture 6
Union-Find
6.1
Overview
In this lecture we describe the union-nd problem. This is a problem that captures a key task one
needs to solve in order to eciently implement Kruskals minimum-spanni
Lecture 1
Introduction to Algorithms
1.1
Overview
The purpose of this lecture is to give a brief overview of the topic of Algorithms and the kind of
thinking it involves: why we focus on the subjects
Game Theory
15-451
- Zero-sum games
- General-sum games
10/17/13
Game Theory
(and its connections to Algorithm
Analysis and Computer Science)
Plan for Today
2-Player Zero-Sum Games (matrix games)
Mi