IAP
Course Outline
1
Searching
1.1
Summary Lecture
1.2
Linear Search 1
1.2.1
Correctness
1.2.2
Complexity
1.2.3
Optimality
1.3
Linear Search 2
1.3.1
Correctness
1.3.2
Complexity
1.4
Bisection Search
1.4.1
Correctness
1.4.2
Complexity
1.5
Bisection Search 2
1.5.1
Complexity
1.5.2
Optimality
1.6
References
2
Sorting
2.1
Max Sort
2.1.1
Correctness
2.1.2
Complexity
2.1.3
Optimality
2.2
Selection Sort
2.3
Bubblesort
2.4
Insertion Sort
2.5
Mergesort
2.6
Quicksort
2.7
Optimal Sorting
2.8
References
3
Greedy Algorithms
3.1
Summary Lecture
3.2
Optimal Service
3.2.1
Brute Force Solution
3.2.2
Greedy Solution
3.3
Greedy Algorithm Properties
3.4
Proof of Correctness for Optimal Service
3.5
Making Change
3.5.1
Brute Force Solution
3.5.2
Greedy Solution
3.6
Additional Reading
4
Dynamic Programming
4.1
Shortest Path Problem
4.1.1
Complexity
4.1.2
Correctness
4.2
Properties of Dynamic Programming
4.3
Floyd-Warshall
4.4
Summary Lecture (Part 1)
4.5
Making Change
4.6
Efficient Matrix Multiplication
4.7
Additional Reading
5
Computational Geometry
5.1
Summary Lecture
5.2
Introduction
5.3
Brute Force Approach
5.3.1
Correctness
5.4
Divide and Conquer Approach
5.5
An
\(O(n \lg n)\)
Algorithm
5.5.1
Optimality
5.5.2
Correctness
5.6
Additional Reading
6
Hashing
6.1
Direct Addressing
6.2
Introduction to Hashing
6.3
Closed Address Hashing
6.4
Open Address Hashing
6.5
Hash Functions
6.6
Summary Lecture
6.7
Additional Reading
Advanced Analysis of Algorithms
Advanced Analysis of Algorithms
COMS3005A
Steven James
Semester 2, 2022
[Updated: 2022-10-17]