COM 1390: Algorithms
By request, I have provided an online example of
the distinction
between working code, correct code, and good code.
I have provided implementations of a crude text formatter in
C and in
Pascal.
An implementation of labelled binary trees
in C/C++ remains available.
Reading assignments
- Read Chapter 1 (Introduction).
- Read Chapter 2 (Growth of Functions).
- Read Chapter 3 (Summations).
- Read Chapter 4 (Recurrences), omitting section 4.4.
- Read Introduction to Part II (Sorting and Order Statistics).
- Read Chapter 7 (Heapsort).
- Read Chapter 8 (Quicksort).
- Read Chapter 10 (Medians and Order Statistics).
- Read Introduction to Part III (Data Structures).
- Read Sections 11.1 and 11.2 (Elementary Data Structures).
- Read Sections 12.1, 12.2, and 12.3 (Hash Tables).
- Read Sections 13.1, 13.2, and 13.3 (Binary Search Trees).
- Read lecture notes on labelled
binary trees and persistent dynamic sets.
- Read Chapter 14 (Red-Black Trees).
- Read Sections 16.0, 16.1, 16.2 (Dynamic Programming).
- Read Sections 17.0, 17.1, 17.2 (Greedy Algorithms).
- Read Sections 36.0 through 36.4 (NP-Completeness).