Data Structure and Algorithms

UMN Twin Cities Syllabus -

- Rigorous analysis of algorithms/implementation
- Algorithm analysis
- Sorting algorithms: Chapters 2, 6, 7, §8.1, 9
- Binary trees
- Heaps
- Priority queues
- Heap sort
- Dynamic programming: Chapter 15
- Greedy Algorithms: Sections 16.1, 16.2, 16.3
- Graphs: Sections 22.1, 22.2, 22.3, 22.4
- Graph traversal
- Single source shortest path: Sections 24.1, 24.2, 24.3
- All Pairs Shortest Paths: Sections 25.1, 25.2
- Minimum cost spanning trees: Chapter 23
- Binary search trees: Chapter 12
- Hash tables and hashing: Chapter 11
- Data Structures for Disjoint Sets: Section 21.3

Order of things being learned…

Sorting & Selection
Chapters 2, 6, 7, §8.1, 9

Data Structures for Disjoint Sets
Section 21.3

Dynamic Programming
Chapter 15

Greedy Algorithms
Sections 16.1, 16.2, 16.3

Elementary Graph Algorithms
Sections 22.1, 22.2, 22.3, 22.4

Minimum Spanning Trees
Chapter 23

Single Source Shortest Paths
Sections 24.1, 24.2, 24.3

All Pairs Shortest Paths
Sections 25.1, 25.2

Hash Tables
Chapter 11

Binary Search Trees
Chapter 12

TextBook used:

Cormen, Leiserson, Rivest, and Stein: Introduction to Algorithms 3rd edition

Some chapters address specific problems, such as:
- Finding medians and order statistics in Chapter 9
- Computing minimum spanning trees in Chapter 23
- Determining a maximum flow in a network in Chapter 26

Other chapters address techniques,
such as:
- Divide-and-conquer in Chapter 4
- Dynamic programming in Chapter 15
- Amortized analysis in Chapter 17