An algorithm is a specification of instructions for solving a class of problems by performing calculations and performing automated reasoning tasks and data processing. It describes a computation which when executed takes a finite number of successive states to produce an output. It is written in software in computer systems to produce output from a given input. Algorithms can be classified on the basis of implementation, design paradigm, optimization problems, etc. into a number of varied types. Some algorithm types are recursion, deterministic and non-deterministic, logical, randomized algorithms, etc. This book provides comprehensive insights into computer algorithms. It attempts to understand the varied kinds of computer algorithms and their practical applications. For someone with an interest and eye for detail, this textbook covers the most significant topics in this field.