Algorithms play the vital role both in the science and engineering practice ofcomputing. The book describes the method of estimating the running time ofalgorithms. As computers become faster and faster, the need for programsthat can run at faster rate becomes more acute. Paradoxically, this needsmore careful attention to efficiency, since inefficiencies in programs leads tomemory wastage and more execution time.The book covers engineering issues in algorithm design as well asmathematical aspects in time efficiency estimation. The book providesvarious approaches for analyzing an algorithm; student can decide anoptimal algorithm before it is actually coded. The algorithms with variousalgorithm design techniques are presented with the explanation of its runningtime. These techniques help the student for designing algorithms for newproblems. The students able to categorize known algorithms according to anunderlying design idea.The book uses simple language to explain the basic course on the designand analysis of algorithms. Algorithms are described in a pseudocodedesigned to be readable by students who has little programming knowledge.The goal of this book is to provide good programming and algorithmanalysis skills for the students so that they can develop such programs withthe maximum amount of efficiency.