Book Description

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 chapters through eye-catching visuals and a steady rollout of key 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.

  • 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 Java and Python libraries to solve problems using algorithms
  • Understand the key steps in algorithms presented in the book
  • Use example code in your programs and documentation

Table of Contents

  1. Preface
    1. Conventions Used in This Book
    2. Using Code Examples
    3. O’Reilly Online Learning
    4. How to Contact Us
    5. Who is this book for
    6. Acknowledgments
  2. 1. Problem solving
    1. What is an Algorithm?
    2. Finding the largest value in an arbitrary list
    3. Counting key operations
    4. Models can predict algorithm performance
    5. Find two largest values in arbitrary list
    6. Tournament algorithm
    7. Time Complexity and Space Complexity
    8. Conclusion
    9. Challenge Questions
  3. 2. Analyzing Algorithms
    1. Finding a Dinosaur in a Haystack
    2. Sneakers, Bicycles, Automobiles, Trains, and Planes
    3. When one door closes, another one opens
    4. Binary Array Search
    5. Almost as easy as Pi
    6. Swing and a miss
      1. Two birds with one stone
    7. Asymptotic Analysis
      1. Counting all operations
    8. Conclusion
    9. Challenge Questions