Analysis and Design of Algorithms BCS401
Course Code: BCS401
Credits: 03
CIE Marks: 50
SEE Marks: 50
Total Marks: 100
Exam Hours: 03
Total Hours of Pedagogy: 40H
Teaching Hours/Weeks: [L:T:P:S] 3:0:0:0
Introduction:What is an Algorithm?, Fundamentals of Algorithmic Problem Solving.
Fundamentals of the Analysis of Algorithm Efficiency: Analysis Framework,
Asymptotic Notations and Basic Efficiency Classes, Mathematical Analysis of Non recursive
Algorithms, Mathematical Analysis of Recursive Algorithms.
Brute Force Approaches: Selection Sort and Bubble Sort, Sequential Search and Brute
Force String Matching.
Brute Force Approaches (contd..): Exhaustive Search (Travelling Salesman problem and
Knapsack Problem).
Decrease and Conquer: Insertion Sort, Topological Sorting.
Divide and Conquer: Merge Sort, Quick Sort, Binary Tree Traversals, Multiplication of
Large Integers and Strassen’s Matrix Multiplication.
Transform and-Conquer: Balanced Search Trees, Heaps and Heapsort.
Space Time Tradeoffs: Sorting by Counting: Comparison counting sort, Input Enhancement
in String Matching: Horspool’s Algorithm.
Dynamic Programming: Three basic examples, The Knapsack Problem and Memory
Functions, Warshall’s and Floyd’s Algorithms.
The Greedy Method: Prim’s Algorithm, Kruskal’s Algorithm, Dijkstra’s Algorithm, Huffman
Trees and Codes.
Limitations of Algorithmic Power: Decision Trees, P, NP, and NP-Complete Problems.
Copying with Limitations of Algorithmic Power: Backtracking (n-Queens problem,
Subset-sum problem), Branch-and-Bound (Knapsack problem), Approximation algorithms for
NP-Hard problems (Knapsack problem).