A friendly and accessible introduction to the most useful algorithms
Computer algorithms are the basic recipes for programming. Professional programmers need to know how to use algorithms to solve difficult programming problems. Written in simple, intuitive English, this book describes how and when to use the most practical classic algorithms, and even how to create new algorithms to meet future needs. The book also includes a collection of questions that can help readers prepare for a programming job interview.
In addition, Essential Algorithms features a companion website that includes full instructor materials to support training or higher ed adoptions.
Chapter 1 Algorithm Basics 1
Chapter 2 Numerical Algorithms 25
Chapter 3 Linked Lists 55
Chapter 4 Arrays 83
Chapter 5 Stacks and Queues 111
Chapter 6 Sorting 131
Chapter 7 Searching 163
Chapter 8 Hash Tables 169
Chapter 9 Recursion 185
Chapter 10 Trees 227
Chapter 11 Balanced Trees 277
Chapter 12 Decision Trees 297
Chapter 13 Basic Network Algorithms 325
Chapter 14 More Network Algorithms 355
Chapter 15 String Algorithms 377
Chapter 16 Cryptography 397
Chapter 17 Complexity Theory 419
Chapter 18 Distributed Algorithms 435
Chapter 19 Interview Puzzles 465
Appendix A Summary of Algorithmic Concepts 477
Appendix B Solutions to Exercises 487