Algorithms
Lecture Schedule
I. Analysis of Algorithms - 20 Hrs
1.1 Algorithm Concept and Lifecycle
1.2 Analysis of Algorithms
1.2.1 Need for Analysis
1.2.2 Performance Analysis: Time and Space Complexities
1.3 Methodology of Analysis
1.3.1 Aposteriori Analysis
1.3.2 Apriori Analysis
1.4 Types of Analysis
1.5 Asymptotic Notations
1.6 Properties of Asymptotic Notations
1.7 Framework for Analysing Recursive Algorithms
1.8 Apriori analysis of Non-Recursive Algorithms
1.9 Analysing Loops
1.10 Space Complexity
1.10.1 Components of Space Complexity
1.10.2 Examples
1.11 Mathematical Background
II. Design Strategies
2. Divide & Conquer - 8 Hrs
2.1 General Method
2.2 Max-Min Problem
2.3 Merge Sort
2.4 Binary Search
2.5 Quick Sort
2.6 Matrix Multiplication
2.6.1 DandC Method
2.6.2 Strassen’s Method
2.7 Long Integer Multiplication (LIM)
2.8 Master Method for DandC Recurrences
2.9 Recursion Tree
3. Greedy Method --- 8 Hrs
3.1 General Method
3.2 Knapsack Problem
3.3 Job Sequencing with Deadlines
3.4 Optimal Merge Patterns
3.4.1 Huffman Coding
3.5 Minimum Cost Spanning Trees
3.5.1 Prims Method
3.5.2 Kruskal’s Method
3.5.3 Comparison of Prim and Kruskal Method
3.5.4 Dijkstra- Kalaba Algorithm
3.6 Shortest Paths Problem
3.6.1 Dijkstra’s Single Source Shortest Paths Algorithm
4. Dynamic Programming (DP) - 12 Hrs
4.1 The Method
4.2 Difference between DP, Greedy Method and DandC
4.3 Multistage Graphs
4.4 Travelling Salesperson Problem
4.5 Binary Knapsack Problem
4.6 All Pairs Shortest Paths
4.7 Bellman-Ford Single Source Shortest Paths
4.8 Longest Common Subsequence
4.9 Matrix Chain Multiplication
4.10 Sum of Subsets
4.11 Reliable System Design
4.12 Optimal Cost Binary Search Tree
5. Graph Algorithms - 4 Hrs
5.1 Representation of Graphs
5.2 Graph Traversals
DFS
5.2.1 Undirected Connected Graphs
5.2.2 Undirected Disjoint Graphs: DFT
5.2.3 Directed Graphs & Types of Edges
5.2.4 DAG
BFS
5.2.5 FIFO BFS
5.2.6 LIFO BFS
5.2.7 LC BFS
5.3 Parenthesization Theorem
5.4 Problem Solving
6. Heap Algorithms - 2 Hrs
6.1 Operations : Create, Insert, Delete, Modify
6.2 Applications : Heapsort
7. Sets -- 1 Hr
7.1 Representations
7.2 Operations
7.2.1 Union
7.2.2 Find
8. Sorting Algorithms - 2 Hrs
8.1 Basic terminology
8.2 Methods
8.2.1 Bubble Sort
8.2.2 Selection Sort
8.2.3 Insertion Sort
8.2.4 Radix Sort
10. Backtracking & Branch- Bound – 1 Hr
10.1 Basic Introduction
10.2 Terminology
10.3 Applications