Algorithm Design
- introduction, role of algorithms, insertion sort, growth of functions
- Recursion relations and Recursion tree and Master theorem
- Divide and conquer approach, Merge sort, Quick sort
- finding median and k th smallest elements
- Linear-time sorting
- Amortized analysis
- course review and review of weighted graphs and DFS and BFS
- Dynamic Programming (parentheses, LCS, OBST, Triangulation)
- Shortest path (Dijkstra, Floyd-Warshal, Bellman-Ford)
- Shortest Paths (continue)
- Greedy
- Minimum Spanning Tree
- Maximum Flow
- Backtracking and Branch&Bound
- NP-completeness
- Course review and Answering questions