Learning Outcomes
At the end of this lecture, you’ll be able to:
- Identify the operations of the Union-Find data structure.
- Trace the quick find implementation strategy for union-find.
- Trace the quick union implementation strategy for union-find.
- Differentiate the advantages/disadvantages of quick find vs. quick union.
- Trace the “quick union” implementation with union-by-size and path compression heuristics.
- Explain the runtime improvements gained by using the heuristics for union-find operations.
- Define the iterated logarithm (log-star) function.
- Identify the amortized runtime of union-find operations.
- Explain how to implement Kruskal’s algorithm efficiently using a union-find structure for detecting cycles, and identify the resulting run-times.
Lecture Plan
In this lecture, we'll cover the following lessons:
- Dynamic Connectivity: A Data Structure for Graphs
- Union-Find Data Structure: Introduction
- Union-Find Data Structure: Operations
- Implementation: Quick Find⚡
- Implementation: Quick Union⚡
- Quick Union: Improvement 1: Weighting⚡
- Quick Union: Improvement 2: Path Compression⚡
- Quick Union: Exercise
- Quick Union: Runtime after improvements!⚡
- Kruskal's Runtime: Using Union-Find⚡
Lessons marked with ⚡ contain exercise/activity.