- Meeting 07 : Mon, Feb 03, 11:00 am-11:50 am
References | |
Exercises | |
Reading | |
Interger Multiplication problem. Upper and Lower Bounds. Recursive approach via the Russian Peasant algorithm. The 4-way recursive approach. Unfolding method on the recursion tree. Quadratic bound.
References | : | [E] Chapter 1, section 1.9
|
- Meeting 08 : Tue, Feb 04, 10:00 pm-10:50 pm
References | |
Exercises | |
Reading | |
Analysis of the recurrence relation. Karastuba Method. Solving the recurrence relation. Masters Theorem.
References | : | Section 1.9 of [E]. See worked out examples in this document.
|
- Meeting 09 : Wed, Feb 05, 09:00 am-09:50 am
References | |
Exercises | |
Reading | |
Seven Examples of applying masters theorem. Proof of Masters theorem.
- Meeting 10 : Thu, Feb 06, 01:00 pm-01:50 pm
References | |
Exercises | |
Reading | |
Quick sort Algorithm. Median as the pivot. Finding the median. Recursive algorithm. Need of finding the median. Attempt on the median of medians.
References | : | Section 1.5, 12.8 of [E]
|
- Meeting 11 : Mon, Feb 10, 11:00 am-11:50 am
References | |
Exercises | |
Reading | |
Finding the k-th smallest element in linear time. Correctness proofs. Detailed Analysis. Why group by 5 and not by 3?
References | : | Section 1.8 of [E]
|
- Meeting 12 : Tue, Feb 11, 10:00 pm-10:50 pm
References | |
Exercises | |
Reading | |
Counting the number of inversions. The divide and conquer by strengthening the induction/recursion.
References | : | Section 5.3 in [KT]
|
Exercises | : |
- Which sorting algorithm uses exactly Inv(sigma) many comparisons?
- How do we do the ranking comparisons that we started out with for arbitrary two permutations?
|
Reading | : | (Optional)
Additional Lecture Notes
Is there a better algorithm for counting the number of inversions? Here is an O(n sqrt(log n)) algorithm. |
- Meeting 13 : Wed, Feb 12, 09:00 am-09:50 am
References | |
Exercises | |
Reading | |
Closest Pair Problem. Trivial O(n^2) algorithm for 2D case. The sorting-based algorithm for 1D case. Counter example in the 2D case. Divide and Conquer strategy. Combining the solution. The trivial O(n^2) algorithm. Identifying the vertical band of candidates and why it is useless. Tightetening the argument using observations on the grid. O(n log n) algorithm
References | : | Section 5.4 in [KT]
|
Exercises | : | Write down formal proofs of Observation 2 and 3. We formally proved Observation 1 in class.
|
Reading | : | (Optional) |
- Meeting 14 : Tue, Feb 18, 10:00 pm-10:50 pm
References | |
Exercises | |
Reading | |
Maximum-sum Subarray Problem.
References | : | Section 4.1, Page 68 of [CLRS]
|
Exercises | : | Try out the idea discussed in the class (of strengthening the recursion) to improve the running time of divide and conquer algorithm to O(n).
|
Reading | : | Linear time algorithm. |
- Meeting 15 : Wed, Feb 19, 09:00 am-09:50 am
References | |
Exercises | |
Reading | |
Matrix Addition and Multiplication. Vector addition and point-wise multiplication. Convolution of vectors. Trivial upper bounds and analysis.
- Meeting 16 : Thu, Feb 20, 01:00 pm-01:50 pm
References | |
Exercises | |
Reading | |
Convolution as a polynomial multiplication in time. Trivial algorithm. Strategy of evaluation, multiplication and interpolation. Linear time algorithms for evaluating a polynomial in one value. Quadratic evaluations. Choice of evaluation points. Scope for divide and conquer.
References | : | [CLRS] Section 30.1
|
- Meeting 17 : Mon, Feb 24, 11:00 am-11:50 am
References | |
Exercises | |
Reading | |
Roots of unity. Properties. The fast Fourier Transform Algorithm.
References | : | [CLRS] Section 30.2
|
- Meeting 18 : Mon, Mar 03, 11:00 am-11:50 am
References | |
Exercises | |
Reading | |
Implementing the interpolation when evaluations are roots of unity. Inverse Fourier Transform using FFT Algorithm.
References | : | [CLRS] Section 30.2
|