Dr. Dana Vrajitoru is an Associate Professor of Computer Science at Indiana University South Bend, IN, USA. Dr. William Knight is an Emeritus Associate Professor at the same institution.
Introduction
Mathematical Preliminaries
Fundamental Notations in Analysis of Algorithms
Recurrence Relations
Deterministic Analysis of Algorithms
Algorithms and Probabilities
Finite Graph Algorithms
Appendix: Probability Theory
This book introduces the essential concepts of algorithm analysis required by core undergraduate and graduate computer science courses, in addition to providing a review of the fundamental mathematical notions necessary to understand these concepts. Features: includes numerous fully-worked examples and step-by-step proofs, assuming no strong mathematical background; describes the foundation of the analysis of algorithms theory in terms of the big-Oh, Omega, and Theta notations; examines recurrence relations; discusses the concepts of basic operation, traditional loop counting, and best case and worst case complexities; reviews various algorithms of a probabilistic nature, and uses elements of probability theory to compute the average complexity of algorithms such as Quicksort; introduces a variety of classical finite graph algorithms, together with an analysis of their complexity; provides an appendix on probability theory, reviewing the major definitions and theorems used in the book.