An introduction to fundamental data types, algorithms, and data structures,
with emphasis on applications and scientific performance analysis of Java
implementations. Specific topics covered include: union-find algorithms;
basic iterable data types (stack, queues, and bags); sorting algorithms
(quicksort, mergesort, heapsort) and applications; priority queues; binary
search trees; red-black trees; hash tables; and symbol-table applications.