|
CLR refers to Cormen, Leiserson, Rivest and Stein: "Introduction to Algorithms (Third Edition)". |
|
Lecture 1 (Jan 6) |
General introduction. Definition of an algorithm. Examples of simple computer models: Turing model, RAM model, pointer based machines, comparison model. RAM model (or uniform cost model), bit model (or: logarithmic cost model). Definition and examples of oracles (not done explicitly),. The Fibonacci example: introduce recursion, iteration (the array method), and fast exponentiation. Worst-case time complexity. Landau symbols: O, Omega, Theta, small o, small omega. Examples of many complexity classes (linear, quadratic, polynomial, exponential). Resources:
Exercise mentioned during the lecture:
Exercise to chew on, but not mentioned in class:
|
|
Lecture 2 (Jan 8) |
Assignment 1 handed out: this handwritten assignment is due on January 20 at 1:05 pm, in class. Introduction to the divide-and-conquer principle. Fast exponentiation revisited. Introduction to recurrences. The divide-and-conquer solution to the chip testing problem in CLR. Divide-and-conquer (Karatsuba) multiplication. Mergesort, convex hulls in the plane. We covered all of chapter 2 and part of chapter 3 of CLR. Resources:
Exercises mentioned during the lecture:
Exercises not mentioned during the lecture:
|