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. 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 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
Publisher resources
Table of contents
- Foreword
- Preface
- 1. Problem Solving
-
2. Analyzing Algorithms
- Using Empirical Models to Predict Performance
- Multiplication Can Be Faster
- Performance Classes
- Asymptotic Analysis
- Counting All Operations
- Counting All Bytes
- When One Door Closes, Another One Opens
- Binary Array Search
- Almost as Easy as π
- Two Birds with One Stone
- Pulling It All Together
- Curve Fitting Versus Lower and Upper Bounds
- Summary
- Challenge Exercises
-
3. Better Living Through Better Hashing
- Associating Values with Keys
- Hash Functions and Hash Codes
- A Hashtable Structure for (Key, Value) Pairs
- Detecting and Resolving Collisions with Linear Probing
- Separate Chaining with Linked Lists
- Removing an Entry from a Linked List
- Evaluation
- Growing Hashtables
- Analyzing the Performance of Dynamic Hashtables
- Perfect Hashing
- Iterate Over (key, value) Pairs
- Summary
- Challenge Exercises
- 4. Heaping It On
- 5. Sorting Without a Hat
-
6. Binary Trees: Infinity in the
Palm of Your Hand
- Getting Started
- Binary Search Trees
- Searching for Values in a Binary Search Tree
- Removing Values from a Binary Search Tree
- Traversing a Binary Tree
- Analyzing Performance of Binary Search Trees
- Self-Balancing Binary Trees
- Analyzing Performance of Self-Balancing Trees
- Using Binary Tree as (key, value) Symbol Table
- Using the Binary Tree as a Priority Queue
- Summary
- Challenge Exercises
- 7. Graphs: Only Connect!
- 8. Wrapping It Up
- Index
- About the Author
Product information
- Title: Learning Algorithms
- Author(s):
- Release date: August 2021
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781492091066
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
Grokking Algorithms
Grokking Algorithms is a fully illustrated, friendly guide that teaches you how to apply common algorithms …
book
Algorithms, 4th Edition
This fourth edition of Robert Sedgewick and Kevin Wayne’s Algorithms is the leading textbook on algorithms …
book
Generative Deep Learning, 2nd Edition
Generative AI is the hottest topic in tech. This practical book teaches machine learning engineers and …