Pre-requisites : CS204 Algorithms
Performance of algorithms: space and time complexity, asymptotics Design techniques: the greedy method, divide-and-conquer, dynamic programming Sorting and searchingGraph Algorithms Priority Queues: lists, heaps, binomial heaps, Fibonacci heaps Hashing Search Trees: binary search trees, red-black trees, AVL trees, splay trees, B-trees The disjoint set union problem String matching Strings: suffix arrays, tries Randomized data structures: skip lists A selection of advanced topics.
1. T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, Introduction to Algorithms, MIT Press, 2001.
2. J. Kleinberg and E. Tardos, Algorithm Design, Addison Wesley, 2005.
1. A. Aho, J. E. Hopcroft and J. D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley, 1974.
2. S. Sahni, Data Structures, Algorithms and Applications in C++, McGraw-Hill, 2001.
3. M. T. Goodrich and R. Tamassia, Algorithm Design: Foundations, Analysis and Internet Examples, John Wiley & Sons, 2001.