Design and Analysis of Algorithms
Algorithm design paradigms, complexity analysis, sorting and searching, graph algorithms, dynamic programming, greedy methods, and NP-completeness.
Instructor: Tushar R. Mahore
Term: AY 2022–23
Location: Sipna College of Engineering & Technology, Amravati
Course Overview
Develops systematic skills in designing efficient algorithms and analysing their time and space complexity — foundational for software engineering and competitive programming.
Topics Covered
- Asymptotic notation: O, Ω, Θ — best, worst, average case
- Divide and conquer: Merge Sort, Quick Sort, Binary Search
- Greedy algorithms: Kruskal’s, Prim’s, Dijkstra’s, Huffman coding
- Dynamic programming: Fibonacci, 0/1 Knapsack, LCS, Matrix Chain Multiplication
- Backtracking: N-Queens, graph colouring, subset sum
- Branch and bound
- Graph algorithms: BFS, DFS, Topological Sort, Floyd-Warshall
- String matching: KMP, Rabin-Karp
- NP-completeness: P vs NP, reductions
Tools
Python / C++ for implementation, algorithm visualisers
Materials
Course materials will be uploaded here. Contact mahoretushar@gmail.com for resources.