Order notation, summations, recurrences.
Connected components, biconnected components, topological sorting, strongly-connected components.
Minimal spanning trees, shortest paths, scheduling.
Merge sort, quicksort, median and selection sorts; lower bounds for finding minimum and sorting; Strassen's matrix multiplication algorithm.
Shortest paths, Warshall's algorithm, optimal search trees, memory functions.
NP-completeness: introduction to reductions, the classes P and NP, NP-complete problems, approximation algorithms.