Algorithm and complexity, asymptotic notations, orders, designing worst case and average-case. Basic Technique divide and conquer, dynamic programming, backtracking, greedy method, branch and bound, randomization. Data structure search trees, Fibonaaci heaps, union-find problems. Application-string matching, sorting and scorching, combinatorial problems, optimization problems, computational geometric: problems. Graph algorithms, spanning trees, shortest paths, matching, rnin flow, max-flow. NP- completeness. Approximation algorithms.