Syllabus
Unit 1
Algorithm Analysis – Methodologies for Analyzing Algorithms – Asymptotic Notation – Recurrence Relations – Data Structures – Linear Data Structures (Stacks – Queues – Linked-Lists – Vectors) -Trees (Binary Search Trees – AVL trees – Red-Black trees – B-trees) – Hash-Tables (Dictionaries – Associative Arrays – Database Indexing – Caches – Sets) and Union – Find Structures.
Unit 2
Searching and Sorting (Insertion and Selection Sort – Quick sort – Merge sort – Heap sort – Bucket Sort and Radix Sort) – Comparison of sorting algorithms and lower bounds on sorting – Fundamental Techniques – The Greedy Method – Divide and Conquer – Dynamic Programming.
Unit 3
Graph Algorithms: Elementary Algorithms – Breadth-first search – Depth-first search – Topological sort – strongly connected components – Minimum Spanning Trees – Single-Source Shortest Paths – All-Pairs Shortest Paths – Maximum Flow – Network Flow and Matching – Flows and Cuts.