Book description
Beginning Algorithms
A good understanding of algorithms, and the knowledge of when to apply them, is crucial to producing software that not only works correctly, but also performs efficiently. This is the only book to impart all this essential information-from the basics of algorithms, data structures, and performance characteristics to the specific algorithms used in development and programming tasks.
Packed with detailed explanations and instructive examples, the book begins by offering you some fundamental data structures and then goes on to explain various sorting algorithms. You'll then learn efficient practices for storing and searching by way of hashing, trees, sets, and maps. The authors also share tips on optimization techniques and ways to avoid common performance pitfalls. In the end, you'll be prepared to build the algorithms and data structures most commonly encountered in day-to-day software development.
What you will learn from this book
The basics of algorithms, such as iteration and recursion
Elementary data structures such as lists, stacks, and queues
Basic and advanced sorting algorithms including insertion sort, quicksort, and shell sort
Advanced data structures such as binary trees, ternary trees, and heaps
Algorithms for string searching, string matching, hashing, and computational geometry
How to use test-driven development techniques to ensure your code works as intended
How to dramatically improve the performance of your code with hands-on techniques for profiling and optimization
Who this book is for
This book is for anyone who develops applications, or is just beginning to do so, and is looking to understand algorithms and data structures. An understanding of computer programming is beneficial.
Wrox Beginning guides are crafted to make learning programming languages and technologies easier than you think, providing a structured, tutorial format that will guide you through all the techniques involved.
Table of contents
- Copyright
- Credits
- About the Authors
- Acknowledgments
- Introduction
- 1. Getting Started
-
2. Iteration and Recursion
- 2.1. Performing Calculations
-
2.2. Processing Arrays
-
2.2.1. Using Iterators to Overcome Array-based Problems
- 2.2.1.1. Iterator Operations
- 2.2.1.2. The Iterator Interface
- 2.2.1.3. The Iterable Interface
- 2.2.1.4. Iterator Idioms
- 2.2.1.5. Standard Iterators
- 2.2.1.6. How It Works
- 2.2.1.7. How It Works
- 2.2.1.8. A Reverse Iterator
- 2.2.1.9. How It Works
- 2.2.1.10. How It Works
- 2.2.1.11. A Filtering Iterator
- 2.2.1.12. How It Works
- 2.2.1.13. How It Works
-
2.2.1. Using Iterators to Overcome Array-based Problems
- 2.3. Recursion
- 2.4. Summary
- 2.5. Exercises
- 3. Lists
- 4. Queues
- 5. Stacks
-
6. Basic Sorting
- 6.1. The Importance of Sorting
- 6.2. Sorting Fundamentals
- 6.3. Understanding Comparators
- 6.4. Working with a Selection Sort
- 6.5. Understanding Insertion Sort
- 6.6. Understanding Stability
- 6.7. Comparing the Basic Sorting Algorithms
- 6.8. Summary
- 6.9. Exercises
- 7. Advanced Sorting
- 8. Priority Queues
- 9. Binary Searching and Insertion
- 10. Binary Search Trees
- 11. Hashing
- 12. Sets
- 13. Maps
- 14. Ternary Search Trees
- 15. B-Trees
- 16. String Searching
- 17. String Matching
- 18. Computational Geometry
- 19. Pragmatic Optimization
- A. Further Reading
- B. Resources
- C. Bibliography
- D. Answers to Exercises
Product information
- Title: Beginning Algorithms
- Author(s):
- Release date: November 2005
- Publisher(s): Wrox
- ISBN: 9780764596742
You might also like
book
Dive Into Algorithms
Dive Into Algorithms is a wide-ranging, Pythonic tour of many of the world's most interesting algorithms. …
book
Algorithms in a Nutshell
Creating robust software requires the use of efficient algorithms, but programmers seldom think about them until …
video
Algorithms in Motion
See it. Do it. Learn it! Algorithms - established processes for solving computational problems-are the foundation …
book
Algorithms in a Nutshell, 2nd Edition
Creating robust software requires the use of efficient algorithms, but programmers seldom think about them until …