Course Code: MTH10304

C. Design and Analysis of Algorithms

UNIT I : INTRODUCTION

Mathematical preliminaries – Complexity Analysis – Asymptotic Notations – Average and worst case analysis – Stepwise refinement. Sorting : Bubble sort – Bucket sort – Heap sort – Radix sort. Searching : Sequential search – Binary search

UNIT II : DIVIDE AND CONQUER METHOD AND GREEDY METHOD

Divide and Conquer – General method – Quick sort – Finding maximum and minimum – Strassen’s matrix multiplication. Greedy method – General method – Tree vertex splitting problem – Job sequencing with deadlines

UNIT III : DYNAMIC PROGRAMMING Dynamic Programming - General method - Multistage graph – String editing. Backtracking – Basics – 8 Queen problem – Sum of subset problem. Branch and bound – Basics – Travelling Salesperson problem

UNIT IV : GRAPH ALGORITHM

Minimum cost spanning tree algorithms – Shortest path algorithms – Transitive closure – Topological ordering – Bi-connected and strongly connected components – R-connected graph – Even’s Kleitman’s algorithms

UNIT V : NP-HARD AND NP-COMPLETE PROBLEMS

NP complete & NP hard problems – Approximation algorithms – Fast fourier transform and algorithm – Lower Bound Trees – Oracle and Adversary arguments.

TEXT BOOK

1.  Horowitz E, Sahni .S & Rajasekar S– “Fundamentals of Computer Algorithms” – Galgotia Publications – 1998

REFERENCES:

1.  Sara Base – “ Computer Algorithms : Introduction to Design and Analysis” – Addison Wesley – 1998.

2.  Algorithms and Data Structures in C++ - Ammerald-Wiley Publications-2003.