(as of Nov 04, 2023 05:55:33 UTC – Details)
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
From the Publisher
From the Preface
Who This Book Is For
If you are reading this book, I assume you already have a working knowledge of a programming language, such as Python. If you have never programmed before, I encourage you to first learn a programming language and then come back! I use Python in this book because it is accessible to programmers and nonprogrammers alike.
Algorithms are designed to solve common problems that arise frequently in software applications. When teaching algorithms to undergraduate students, I try to bridge the gap between the students’ background knowledge and the algorithm concepts I’m teaching.
Many textbooks have carefully written—but always too brief—explanations. Without having a guide to explain how to navigate this material, students are often unable to learn algorithms on their own.
In one paragraph and in Figure P-1, let me show you my goal for the book. I introduce a number of data structures that explain how to organize information using primitive fixed-size types, such as 32-bit integer values or 64-bit floating point values. Some algorithms, such as Binary Array Search, work directly on data structures. More complicated algorithms, especially graph algorithms, rely on a number of fundamental abstract data types, which I introduce as needed, such as stacks or priority queues. These data types provide fundamental operations that can be efficiently implemented by choosing the right data structure. By the end of this book, you will understand how the various algorithms achieve their performance. For these algorithms, I will either show full implementations in Python or refer you to third-party Python packages that provide efficient implementation.
If you review the associated code resources provided with the book, you will see that for each chapter there is a book.py Python file that can reproduce all tables within the book. As they say in the business, “your mileage may vary,” but the overall trends will still appear.
At the end of every chapter in the book are challenge exercises that give you a chance to put your new knowledge to the test. I encourage you to try these on your own before you review my sample solutions, found in the code repository for the book.
Publisher : O’Reilly Media; 1st edition (September 21, 2021)
Language : English
Paperback : 278 pages
ISBN-10 : 1492091065
ISBN-13 : 978-1492091066
Item Weight : 1.05 pounds
Dimensions : 6.75 x 0.5 x 9 inches