CH-1
1. Define the RAM (Random Access Machine) model of computation.
Explain its key components.
2. What is time complexity? Explain how it is different from space
complexity.
3. Define asymptotic notation and explain the differences between Big-O,
Omega, and Theta notations.
4. Find the time complexity of the Heap Sort algorithm. Explain briefly.
5. Explain the concept of recursion with an example. What are its
limitations?
6. What is tail recursion? How does it improve the efficiency of recursive
functions?
7. Discuss the importance of algorithm design techniques. Explain one
technique in detail.
1. Define the RAM (Random Access Machine) model of computation.
What are its key components?
2. Explain the difference between time complexity and space complexity
with examples.
3. Define asymptotic notation. Differentiate between Big-O, Omega, and
Theta notations.
4. Determine the time complexity of the Heap Sort algorithm. Explain
briefly.
5. Define recursion and explain its use with an example. What are its
limitations?
6. What is tail recursion? How does it improve efficiency?
7. Explain the Divide and Conquer algorithm design technique with an
example.
CH-2
1. Explain the basic method of the Divide and Conquer algorithm.
2. Describe the Merge Sort algorithm with its time complexity.
3. What is Quick Sort? Explain its partitioning method.
4. Explain the Binary Search algorithm and its time complexity.
5. Describe the Matrix-Chain Multiplication problem and its dynamic
programming solution.
6. What is the All-Pairs Shortest Path problem? How is it solved using
dynamic programming?
7. Explain the Travelling Salesman Problem (TSP) and how dynamic
programming can solve it.
CH-3
1. Explain the basic method of the Branch and Bound algorithm.
2. Describe the 15-puzzle problem. How does the Branch and Bound
technique solve it?
3. What is backtracking? Explain its basic method with an example.
4. Explain the Eight Queens problem and how backtracking is used to
solve it.
5. Describe the graph coloring problem. How can backtracking be
applied?
6. What is the Hamiltonian Path problem? Explain how backtracking
solves it.
7. Compare Branch and Bound with Backtracking. Highlight key
differences.
CH-4
1. Explain the basic method of the Greedy algorithm. How does it work?
2. Describe the Knapsack Problem and how the Greedy method solves it.
3. Explain Job Sequencing with Deadlines. How is the Greedy method
applied?
4. What is a Minimum Spanning Tree (MST)? Explain Prim's and
Kruskal's algorithms.
5. What is Lower Bound Theory? Explain bounds on sorting techniques.
6. Explain the Disjoint Set Manipulation technique. What is UNION-FIND?
7. Compare Greedy and Dynamic Programming approaches. Highlight
key differences.
CH-5
1. Explain the properties of graphs. Differentiate between directed and
undirected graphs.
2. Describe the Breadth-First Search (BFS) algorithm. How does it
traverse a graph?
3. Explain the Depth-First Search (DFS) algorithm. How is it different
from BFS?
4. What are matrix manipulation algorithms? Explain with examples.
5. Explain the solution of simultaneous equations using matrix methods.
6. What are the DFT and FFT algorithms? Explain their applications.
7. Explain integer multiplication schemes with an example.
CH-6
1. Explain the concept of NP-completeness. What makes a problem NP-
complete?
2. Differentiate between P, NP, NP-hard, and NP-complete classes.
3. What is the Circuit Satisfiability Problem (C-SAT)? How is it related to
NP-completeness?
4. Explain the Clique Decision Problem. How does it relate to NP-
completeness?
5. What are approximation algorithms? Why are they necessary?
6. Describe the performance guarantee of approximation algorithms.
7. Explain the 0/1 Knapsack Problem and its polynomial-time
approximation scheme (PTAS).