Week 1, 2, 3 | Introduction and review (bubble sort, insertion sort, selection sort, best case and worst cases analysis). Analysis tools (asymptotic notation, summations, recurrences). | |
Week 4, 5, 6 | Efficient sorting (mergesort, heapsort, quicksort, randomized quicksort). Sorting lower bound, bucket sort and counting sort. Selection (quick-select and O(n) worst-case selection) | |
Week 7, 8, 9, 10 | Techniques (divide-and-conquer, dynamic programming and greedy). | |
Week 11, 12, 13 | Graphs basics, shortest paths (shortest paths on DAGs, Dijkstra’s and Bellman-Ford algorithms) and minimum spanning trees (Kruskal’s and Prim’s algorithms) | |