CS 207 |
Design and Analysis
of Algorithms |
3-0-0-6 |
Pre-requisites : CS203 Algorithm design
techniques: the greedy method, divide-and-conquer, dynamic programming, backtracking,
branch and bound, local search. Priority Queues: binomial heaps, Fibonacci
heaps. Amortized analysis: techniques, some examples like Fibonacci heaps,
Soft heap of Kaplan and Zwick, or the disjoint-set
union-find data structure. Graph Algorithms: strong connectivity,
biconnectivity, topological sort, minimum spanning trees, single pair
shortest paths, all pair shortest paths, network flow. String matching
algorithms. Introduction to a selection from the following topics: randomized
algorithms, approximation algorithms, algebraic and number theoretic
algorithms, parallel/distributed algorithms, parameterized algorithms.
Complexity classes P, NP, PSPACE; reducibility, NP-hard and NP-complete
problems. Textbooks: 1. T. H. Cormen, C. F. Leiserson, R. L. Rivest, C. Stein, Introduction to Algorithms, 3rd
Edition, MIT Press, Prentice Hall of India, 2009. 2. J. Kleinberg and E. Tardos, Algorithm Design, Addison Wesley, 2005. References: 1. A. V. Aho, J. Hopcroft, J. D. Ullman,
Data Structures and Algorithms, Addison- Wesley, 1983. 2. A. V. Aho, J. Hopcroft, J. D. Ullman,
The Design and Analysis of Algorithms,
Addison-Wesley, 1974. 3. S. Sahni,
Data Structures, Algorithms and Applications in C++, McGraw-Hill, 2001. 4. M. T. Goodrich and R. Tamassia, Algorithm Design: Foundations, Analysis and
Internet Examples, John Wiley & Sons, 2001. |