Unit-I
Introduction:
Algorithms, Analysis of Algorithms, Design of Algorithms, and Complexity of Algorithms, Asymptotic Notations, Growth of function, Recurrences
Sorting in polynomial Time: Insertion sort, Merge sort, Heap sort, and Quick sort
Sorting in Linear Time: Counting sort, Radix Sort, Bucket Sort
Medians and order statistics
Unit-II
Elementary Data Structure: Stacks, Queues, Linked list, Binary Search Tree, Hash Table
Advanced Data Structure: Red Black Trees, Splay Trees, Augmenting Data Structure Binomial Heap, B-Tree, Fibonacci Heap, and Data Structure for Disjoint Sets
Union-find Algorithm, Dictionaries and priority Queues, mergeable heaps, concatenable queues
Unit-III
Advanced Design and Analysis Techniques: Dynamic programming, Greedy Algorithm, Backtracking, Branch-and-Bound, Amortized Analysis
Unit-IV
Graph Algorithms: Elementary Graph Algorithms, Breadth First Search, Depth First Search, Minimum Spanning Tree, Kruskal’s Algorithms, Prim’s Algorithms, Single Source Shortest Path, All pair Shortest Path, Maximum flow and Traveling Salesman Problem
Unit –V
Randomized Algorithms, String Matching, NP-Hard and NP-Completeness
Approximation Algorithms, Sorting Network, Matrix Operations, Polynomials & the FFT, Number Theoretic Algorithms, Computational Geometry
References
1. Horowitz Sahani, “ Fundamentals of Computer Algorithms”, Golgotia
2. Coremen Leiserson etal, “ Introduction to Algorithms”, PHI
3. Brassard Bratley, “Fundamental of Algorithms”, PHI
4. M T Goodrich etal, “Algorithms Design”, John Wiley
5. A V Aho etal, “The Design and analysis of Algorithms”, Pearson Education
|