1.1 Definition of algorithm 1.2 Insertion sort and merge sort 1.3 Running time and asymptotic analysis 1.4 Θ-notation, Ω-notation, and O-notation 1.5 Recurrences 1.6 Substitution, recursion-tree method, and master method
5.1 Dictionary problem 5.2 Hash functions 5.3 Collisions resolution by chaining 5.4 Open addressing 5.5 Probing strategies: linear, quadratic, and double hashing 5.6 Analysis of open addressing