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-to-day 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.
The ideal reader of this book is someone who develops applications, or is just starting to do so, and who wants to understand algorithms and data structures. This might include programmers; developers; software engineering students; information systems students; and computer science students.
While this book assumes you have an understanding of computer programming in general, it is also hoped that if you took away the code, you could still read the book cover to cover and follow along—albeit at a largely conceptual level. For this reason, team leaders, architects, and even business analysts might also benefit.
As the code examples are all written in the Java programming language, a working knowledge of Java is likely necessary, as is a familiarity with the standard Java libraries—and with the