Semester 3Year 2 · OddCore Subject★★★★★ Hard
CS 201

Design and Analysis of Algorithms

Algorithm design techniques, complexity analysis, sorting, searching, and graph algorithms.

3Units
13Topics
4Credits
60hLecture hrs
100Max marks
Your Progress
0 / 13 topics
0% complete
Overview
🎯
Why it matters
Algorithms ARE computer science. Every optimization, every search engine, every recommendation system is algorithms. This subject separates good programmers from great engineers.
💼
Placement relevance
THE MOST IMPORTANT subject for placements. 100% of tech interviews test algorithms. Google, Amazon, Microsoft — all ask DP, Graphs, Greedy. This subject = your salary. Non-negotiable for FAANG.
🔗
Prerequisites for
Competitive Programming · Machine Learning · System Design · Advanced Data Structures · Cryptography · Bioinformatics
📚
Recommended books
Introduction to Algorithms by Cormen, Leiserson, Rivest, Stein (CLRS) · Algorithm Design by Jon Kleinberg and Éva Tardos · The Algorithm Design Manual by Steven Skiena · Algorithms by Robert Sedgewick and Kevin Wayne
Curriculum — 3 Units
U1
Unit 1 · 4 Topics · 0% complete
Algorithm Fundamentals
Key Formulae
Big O Hierarchy:O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ) < O(n!)
Master Theorem:T(n) = aT(n/b) + f(n); Compare f(n) with n^(log_b a)
Recurrence:T(n) = T(n-1) + O(1) → O(n); T(n) = 2T(n/2) + O(n) → O(n log n)
Algorithm Analysis
Asymptotic Notation
Recurrence Relations
Master Theorem
U2
Unit 2 · 5 Topics · 0% complete
Sorting & Searching
Key Formulae
Merge Sort:T(n) = 2T(n/2) + O(n) = O(n log n); Space O(n)
Quick Sort:Avg O(n log n), Worst O(n²); Space O(log n)
Binary Search:T(n) = T(n/2) + O(1) = O(log n)
Merge Sort
Quick Sort
Heap Sort
Binary Search
Hashing
U3
Unit 3 · 4 Topics · 0% complete
Advanced Algorithms
Key Formulae
DP Pattern:dp[i] = optimal(dp[i-1], dp[i-2], ...)
Dijkstra:O((V + E) log V) with min-heap
BFS/DFS:O(V + E) time, O(V) space
Dynamic Programming
Greedy Algorithms
Graph Algorithms
Backtracking
Previous Year Questions
Unit 32023 · End Semester10 marks
Solve the 0/1 Knapsack problem using Dynamic Programming for items with weights [2,3,4,5] and values [3,4,5,6], capacity W=8. Show the DP table.
Unit 22023 · Mid Semester8 marks
Implement Quick Sort. Analyze best, average, and worst case time complexity. When does worst case occur? How to avoid it?
Unit 32023 · End Semester10 marks
Apply Dijkstra's algorithm to find shortest path from vertex A to all other vertices. Graph given with 6 vertices and weighted edges. Show step-by-step process.
Unit 32022 · End Semester8 marks
Explain the Greedy approach. Solve Activity Selection Problem: Given activities with start times [1,3,0,5,8,5] and finish times [2,4,6,7,9,9], find maximum activities.
Exam Strategy
⏱️
ALWAYS write time complexity
Every algorithm question asks for complexity analysis. Missing Big O = -2 to -3 marks automatically. Write: Best case, Average case, Worst case, Space complexity.
📊
DP = table + recurrence
DP questions: 1) Define state, 2) Write recurrence relation, 3) Draw table, 4) Fill table bottom-up, 5) Extract answer. Show the table even if you can't complete the solution — partial marks.
🔍
Graph algorithms need diagrams
BFS, DFS, Dijkstra, Prim — always draw the graph. Show visited nodes, queue/stack states. Step-by-step visualization earns maximum marks.
💡
Master the Top 10 patterns
Two Pointers, Sliding Window, BFS/DFS, Binary Search, DP, Greedy, Backtracking, Divide & Conquer — these cover 90% of questions. Practice 5 problems per pattern.
Related Subjects
Semester 2
Data Structures
CS 102
Semester 5
Machine Learning
CS 501
Semester 5
Theory of Computation
CS 503