Algorithm Analysis – Methodologies for Analyzing Algorithms, Asymptotic growth rates, Amortized Analysis. Array based structures, lists and. Advanced Data Structures – Dictionaries, hash tables, bloom filters, binary search trees, interval and range trees; skip lists.
Foundations and Applications of Divide-and-Conquer, Greedy techniques, Dynamic Programming, Backtracking and Branch and Bound. Applications of graph
algorithms: Topological sort, Strongly Connected Components, Bi-connected Components, Bridges, Articulation points. All Pair Shortest Paths, Single Source Shortest Paths.
Flow Networks: Ford-Fulkerson, Edmonds Karp, Applications of maximum flows – Efficient algorithms for maximum bipartite matching. NP-Completeness: Important NP-Complete Problems, Polynomial time reductions, Approximation algorithms, Parallel Algorithms (overview): Tree Contraction – Divide and Conquer – Maximal Independent Set.