Introduction, Fundamentals of the Analysis of Algorithm Efficiency
Notion of Algorithm, Fundamentals of Algorithmic Problem Solving, Important Problem Types, Fundamental data Structures. Analysis Framework, Asymptotic Notations and Basic efficiency classes, Mathematical analysis of Recursive and Non-recursive algorithms.
Brute Force:
Selection Sort and Bubble Sort, Sequential Search, Exhaustive search and String Matching.
Divide-and-Conquer
Mergesort, Quicksort, Binary Search, Binary tree Traversals and related properties, Multiplication of large integers.
Decrease-and-Conquer
Insertion Sort, Depth First and Breadth First Search, Topological sorting, Algorithms for Generating Combinatorial Objects: generating permutations.
Greedy Technique
Prim’s Algorithm, Kruskal’s Algorithm, Dijkstra’s Algorithm, Huffmann Trees.
Space and Time Tradeoffs
Sorting by Counting, Input Enhancement in String Matching, Hashing.
Dynamic Programming
Computing a binomial coefficient, Warshall’s and Floyd’s Algorithms, The Knapsack Problem and Memory Functions
Limitations of Algorithm Power
Lower-Bound Arguments, Decision Trees, P, NP and NP-Complete Problems.
Coping with Limitations of Algorithm Power
Backtracking: n-Queens problem, Hamiltonian Circuit Problem, Subset – Sum Problem. Branch-and- Bound: Assignment Problem, Knapsack Problem, Traveling Salesperson Problem.
Course Outcome (CO):
At the end of this course, the students will be able to
CO1: Categorize problems based on their characteristics and practical importance.
CO2: Develop Algorithms using iterative/recursive approach
CO3: Compute the efficiency of algorithms in terms of asymptotic notations
CO4: Design algorithm using an appropriate design paradigm for solving a given problem
CO5: Classify problems as P, NP or NP Complete
CO6: Implement algorithms using various design strategies and determine their order of growth.
Question paper pattern:
Text Books:
1. Anany Levitin: Introduction to the Design and Analysis of Algorithms, Pearson Education, 2nd Edition.(Chapters 1.1-1.4, 2.1-2.4, 3.1, 3.2, 3.4, 4.1-4.5, 5.1-5.4, 7.1-7.3, 8.1, 8.2, 8.4, 9.1-9.4, 11.1- 11.3, 12.1-12.2)
Reference Books:
1. Coremen T.H., Leiserson C.E., and Rivest R.L.: Introduction to Algorithms, PHI 1998.
2. Horowitz E., Sahani S., Rajasekharan S.: Computer Algorithms, Galgotia Publication 2001.
3. Michael T Goodrich and Roberto Tamassia : Algorithm Design, Wiley India
4. R C T Lee, S S Tseng, R C Chang, Y T Tsai : Introduction to Design and Analysis of Algorithms: A Strategic Approach, Tata McGraw Hill