DESIGN AND ANALYSIS OF ALGORITHMS
The student should be made to:
Learn the algorithm analysis techniques.
Become familiar with the different algorithm design techniques.
Understand the limitations of Algorithm power.
UNIT I INTRODUCTION
Notion of an Algorithm – Fundamentals of Algorithmic Problem Solving – Important
Problem Types – Fundamentals of the Analysis of Algorithm Efficiency – Analysis
Framework – Asymptotic Notations and its properties – Mathematical analysis for
Recursive and Non-recursive algorithms.
UNIT II BRUTE FORCE AND DIVIDE-AND-CONQUER
Brute Force - Closest-Pair and Convex-Hull Problems-Exhaustive Search - Traveling
Salesman Problem - Knapsack Problem - Assignment problem. Divide and conquer
methodology – Merge sort – Quick sort – Binary search – Multiplication of Large Integers –
Strassen’s Matrix Multiplication-Closest-Pair and Convex-Hull Problems.
UNIT III DYNAMIC PROGRAMMING AND GREEDY TECHNIQUE
Computing a Binomial Coefficient – Warshall’s and Floyd’ algorithm – Optimal Binary
Search Trees – Knapsack Problem and Memory functions. Greedy Technique– Prim’s
algorithm- Kruskal's Algorithm-Dijkstra's Algorithm-Huffman Trees.
UNIT IV ITERATIVE IMPROVEMENT
The Simplex Method-The Maximum-Flow Problem – Maximmm Matching in Bipartite
Graphs- The Stable marriage Problem.
UNIT V COPING WITH THE LIMITATIONS OF ALGORITHM POWER
Limitations of Algorithm Power-Lower-Bound Arguments-Decision Trees-P, NP and NPComplete Problems--Coping with the Limitations - Backtracking – n-Queens problem –
Hamiltonian Circuit Problem – Subset Sum Problem-Branch and Bound – Assignment
problem – Knapsack Problem – Traveling Salesman Problem- Approximation Algorithms
for NP – Hard Problems – Traveling Salesman problem – Knapsack problem.
TOTAL: 45 PERIODS
At the end of the course, the student should be able to:
Design algorithms for various computing problems.
Analyze the time and space complexity of algorithms.
Critically analyze the different algorithm design techniques for a given problem.
Modify existing algorithms to improve efficiency.
1. Anany Levitin, “Introduction to the Design and Analysis of Algorithms”, Third Edition,
Pearson Education, 2012.
1. Thomas H.Cormen, Charles E.Leiserson, Ronald L. Rivest and Clifford Stein,
“Introduction to Algorithms”, Third Edition, PHI Learning Private Limited, 2012.
2. Alfred V. Aho, John E. Hopcroft and Jeffrey D. Ullman, “Data Structures and
Algorithms”, Pearson Education, Reprint 2006.
3. Donald E. Knuth, “The Art of Computer Programming”, Volumes 1& 3 Pearson
4. Steven S. Skiena, “The Algorithm Design Manual”, Second Edition, Springer, 2008.