Exam 1 Topics
- Module 1: Introduction
- Module 2: Basics of Algorithm Analysis
- Computational Tractability
- Asymptotic Order of Growth
- Implementing the Stable Matching Algorithm Using Lists and Arrays
- Common Running Times
- Priority Queues
- Module 3: Graphs
- Basic Definitions and Applications
- Graph Connectivity and Graph Traversal
- Implementing Graph Traversal Using Queues and Stacks
- Bipartiteness
- Connectivity in Directed Graphs
- Directed Acyclic Graphs and Topological Ordering
- Module 4: Greedy Algorithms
- Interval Scheduling
- Scheduling to Minimize Lateness
- Optimal Caching (optional)
- Shortest Paths in a Graph
- The Minimum Spanning Tree Problem
- Implementing Kruskal's Algorithm: The Union-Find Data Structure (optional)
- Clustering
- Huffman Codes and Data Compression (optional)
- Module 5: Divide and Conquer
- Mergesort
- Recurrence Relations
- Master Theorem
- Counting Inversions
- Finding the Closest Pair of Points
- Integer Multiplication
- Convolutions and the Fast Fourier Transform (optional)
For each algorithm:
- Asymptotic Order of Growth (its Big-O)
- Key point / distinguishing attribute / clever implementation