|
1 |
Introduction |
|
2 |
Analysis of Algorithms: Running Time, Tilde Notation |
|
3 |
Asymptotic Analysis: Order of Growth |
|
4 |
Divide and Conquer: Karatsuba Multiplication, Master Method |
|
5 |
Sorting Algorithms: Heaps, Priority Queues |
|
6 |
Advanced Sorting: Count Sort, Bucket Sort, Radix Sort |
|
7 |
Searching: BST |
|
8 |
Graph Algorithms: Directed/Undirected Graphs,​BFS |
|
9 |
Graph Algorithms: DFS, Topological Sorting |
|
10 |
Minnimum Spanning Trees |
|
11 |
Single-Source Shortest Paths |
|
12 |
Greedy |
|
13 |
&Dynamic Programming |
|
14 |
Review |
| Textbook | 2nd Ed. | 3rd Ed. |
| 1. Algorithm Analysis | ||
| Algorithm Complexity | Ch 2 | Ch 2 |
| Asymptotic Notation | Ch 3 | Ch3 |
| Searching: Linear Search | Exercises 2.1-3 | Exercises 2.1-3 |
| Sorting: Selection Sort | Exercises 2.2-2 | Exercises 2.2-2 |
| Sorting: Insertion Sort | Ch 2.1 | Ch 2 |
| 2. Algorithm Design | ||
| Divide & Conquer | Ch 2.3 | Ch 4 |
| Searching: Binary Search | Exercises 2.3-5 | Exercises 2.3-5 |
| Sorting: Merge Sort | Ch 2.3 | Ch 4 |
| Sorting: Quick Sort | Ch 7 | Ch 7 |
| Sorting: Heap Sort | Ch 6 | Ch 6 |
| Sorting: Counting Sort | Ch 8 | Ch 8 |
| Greedy Algorithms | Ch 16 | Ch 16 |
| Dynamic Programming | Ch 15 | Ch 15 |
| 3. Graphs | ||
| Notation & Representation | Ch 22 | Ch 22 |
| Elementary Algorithms | Ch 22 | Ch 22 |
| Minimum Spanning Tree | Ch 23 | Ch 23 |
| Shortest Path | Ch 24 | Ch 24 |