When it comes to writing efficient code, every software professional needs to have an effective working knowledge of algorithms. In this practical book, author George Heineman (Algorithms in a Nutshell) provides concise and informative descriptions of key algorithms that improve coding in multiple languages. Software developers, testers, and maintainers will discover how algorithms solve computational problems creatively.
Each chapter builds on earlier material through eye-catching visuals and a steady rollout of essential concepts, including an algorithm analysis to classify the performance of every algorithm presented in the book. At the end of each chapter, you'll get to apply what you've learned to a novel challenge problem--simulating the experience you might find in a technical code interview.
With this book, you will:
- Examine fundamental algorithms central to computer science and software engineering
- Learn common strategies for efficient problem solving--such as divide and conquer, dynamic programming, and greedy approaches
- Analyze code to evaluate time complexity using big O notation
- Use existing Python libraries and data structures to solve problems using algorithms
- Understand the main steps of important algorithms
George Heineman is a professor of computer science with over twenty years of experience in software engineering and algorithms. He is the author of Algorithms in a Nutshell (2ed) and numerous Safari live training offerings, including Exploring Algorithms in Python and Working with Algorithms in Python. He has a lifelong interest in logical and mathematical puzzles. He is the inventor of Sujiken(R) puzzles, a variation of Sudoku, and Trexagon puzzles.