Welcome to Beginning Algorithms, a step-by-step introduction to computing algorithms for the real world. Developers use algorithms and data structures every day of their working lives. Having a good understanding of these algorithms and knowledge of when to apply them is essential to producing software that not only works correctly, but also performs efficiently. This book aims to explain those algorithms and data structures most commonly encountered in day-today software development, while remaining at all times practical, concise, and to the point, with little or no verbiage to distract from the core concepts and examples.