This highly structured text, in its second edition, provides comprehensive coverage of design techniques of algorithms. It traces the complete development of various algorithms in a stepwise approach followed by their pseudo-codes to build an understanding of their applications in practice. With clear explanations, the textbook intends to be much more comprehensive book on design and analysis of algorithm. Commencing with the introduction, the book gives a detailed account of graphs and data structure. It then elaborately discusses the matrix algorithms, basic algorithms, network algorithms, sorting algorithm, backtracking algorithms and search algorithms. The text also focuses on the heuristics, dynamic programming and meta heuristics. The concepts of cryptography and probabilistic algorithms have been described in detail. Finally, the book brings out the underlying concepts of benchmarking of algorithms, algorithms to schedule processor(s) and complexity of algorithms. New to the second Edition New chapters on • Matrix algorithms • Basic algorithms • Backtracking algorithms • Complexity of algorithms Several new sections including asymptotic notation, amortized analysis, recurrences, balanced trees, skip list, disjoint sets, maximal flow algorithm, parsort, radix sort, selection sort, topological sorting/ordering, median and ordered statistics, Huffman coding algorithm, transportation problem, heuristics for scheduling, etc., have been incorporated into the text.