CS 203 |
Algorithms and Data
Structures |
3-0-0-6 |
Pre-requisites : NIL Syllabus: Models of Computation; representations of
algorithms; the concept of problem size; performance of algorithms: space and
time complexity measures, asymptotics, worst case
and average case analyses, lower and upper bounds. Operations on data;
elementary Data structures: linked lists, arrays, matrices, stacks, queues,
binary trees, trees, heaps; tree traversals; linear search and binary search;
priority queues: lists and heaps. Sorting algorithms: insertion-sort,
bubble-sort, selection sort, shellsort, quicksort, mergesort, heapsort; Analysis
of sorting algorithms; lower bound for sorting; selection. Search Trees:
binary search trees, (a,b)-trees,
red-black trees, AVL trees, splay trees, B-trees. Graphs: representations,
depth first search, breadth first search, connectivity. Hashing: separate
chaining, linear probing, quadratic probing. The disjoint-set union-find data
structure (without the amortized analysis). Strings, suffix
arrays, tries. Textbooks: 1. M. A. Weiss, Data Structures and Algorithm
Analysis in C++, 4th Edition, Pearson, 2014. 2. T. H. Cormen, C. F. Leiserson, R. L. Rivest, C.
Stein, Introduction to Algorithms, 3rd Edition, MIT Press, Prentice Hall of
India, 2009. 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. |