1. Review on Algorithm Analysis & Trees
Mathematics review. Asymptotic notations and growth of functions. Overview of general, binary and search trees. AVL trees, Splay trees, B-trees.
2. Priority Queues
Binary heap, d-heap, Min-Max heap, leftist heap, binomial heap.
3. Sorting and Order Statistics
Overview and classification of sorting algorithms, insertion sort, mergesort, heapsort, quicksort, lower bound for sorting, bucket sort and radix sort, indirect sorting and external sorting, Order statistics.
4. Graphs and Networks
Implementation of graphs, topological sort, shortest path, network flow problems, minimum spanning tree, search techniques, introduction to NP-completeness.
5. Algorithm Design Techniques
Combinatorial optimization, greedy algorithms, divide and conquer, dynamic programming, randomized algorithms, backtracking algorithms, branch and bound.
6. Advanced Algorithms (as time permits).
Distributed Algorithms. Parallel Algorithms. Advanced algorithmic analysis: Amortized analysis, online and offline algorithms.