Book description
As a software engineer, you’ll encounter countless programming challenges that initially seem confusing, difficult, or even impossible. Don’t despair! Many of these “new” problems already have well-established solutions. Advanced Algorithms and Data Structures teaches you powerful approaches to a wide range of tricky coding challenges that you can adapt and apply to your own applications. Providing a balanced blend of classic, advanced, and new algorithms, this practical guide upgrades your programming toolbox with new perspectives and hands-on techniques.About the Technology
Can you improve the speed and efficiency of your applications without investing in new hardware? Well, yes, you can: Innovations in algorithms and data structures have led to huge advances in application performance. Pick up this book to discover a collection of advanced algorithms that will make you a more effective developer.
About the Book
Advanced Algorithms and Data Structures introduces a collection of algorithms for complex programming challenges in data analysis, machine learning, and graph computing. You’ll discover cutting-edge approaches to a variety of tricky scenarios. You’ll even learn to design your own data structures for projects that require a custom solution.
What's Inside
- Build on basic data structures you already know
- Profile your algorithms to speed up application
- Store and query strings efficiently
- Distribute clustering algorithms with MapReduce
- Solve logistics problems using graphs and optimization algorithms
About the Reader
For intermediate programmers.
About the Author
Marcello La Rocca is a research scientist and a full-stack engineer. His focus is on optimization algorithms, genetic algorithms, machine learning, and quantum computing.
Quotes
An accessible introduction to the fundamental algorithms used to run the world.
- Richard Vaughan, Purple Monkey Collective
Easy to follow and filled with practical examples, this book is a fantastic introduction to data structures and algorithms.
- Zachary Fleischmann, Hawthorne Interactive
Look no further if you’re looking for a rich book to bridge the stuff of computer science courses and the pragmatic world of software development.
- George Thomas, Manhattan Associates
Teaches how to modify algorithms and data structures to solve practical problems.
- Maciej Jurkowski, Grupa Pracuj
Publisher resources
Table of contents
- inside front cover
- Advanced Algorithms and Data Structures
- Copyright
- dedication
- contents
- front matter
- 1 Introducing data structures
- Part 1. Improving over basic data structures
-
2 Improving priority queues: d-way heaps
- 2.1 Structure of this chapter
- 2.2 The problem: Handling priority
- 2.3 Solutions at hand: Keeping a sorted list
- 2.4 Describing the data structure API: Priority queues
- 2.5 Concrete data structures
- 2.6 How to implement a heap
- 2.7 Use case: Find the k largest elements
- 2.8 More use cases
- 2.9 Analysis of branching factor25
- 2.10 Performance analysis: Finding the best branching factor
- Summary
- 3 Treaps: Using randomization to balance binary search trees
-
4 Bloom filters: Reducing the memory for tracking content
- 4.1 The dictionary problem: Keeping track of things
- 4.2 Alternatives to implementing a dictionary
- 4.3 Describing the data structure API: Associative array
-
4.4 Concrete data structures
- 4.4.1 Unsorted array: Fast insertion, slow search
- 4.4.2 Sorted arrays and binary search: Slow insertion, fast(-ish) search
- 4.4.3 Hash table: Constant-time on average, unless you need ordering
- 4.4.4 Binary search tree: Every operation is logarithmic
- 4.4.5 Bloom filter: As fast as hash tables, but saves memory (with a catch)
- 4.5 Under the hood: How do Bloom filters work?
- 4.6 Implementation
- 4.7 Applications
- 4.8 Why Bloom filters work21
- 4.9 Performance analysis
- 4.10 Estimating Bloom filter precision25
- 4.11 Improved variants
- Summary
- 5 Disjoint sets: Sub-linear time processing
- 6 Trie, radix trie: Efficient string search
- 7 Use case: LRU cache
- Part 2. Multidimensional queries
- 8 Nearest neighbors search
- 9 K-d trees: Multidimensional data indexing
- 10 Similarity Search Trees: Approximate nearest neighbors search for image retrieval
- 11 Applications of nearest neighbor search
- 12 Clustering
- 13 Parallel clustering: MapReduce and canopy clustering
- Part 3. Planar graphs and minimum crossing number
- 14 An introduction to graphs: Finding paths of minimum distance
- 15 Graph embeddings and planarity: Drawing graphs with minimal edge intersections
- 16 Gradient descent: Optimization problems (not just) on graphs
- 17 Simulated annealing: Optimization beyond local minima
- 18 Genetic algorithms: Biologically inspired, fast-converging optimization
- appendix A. A quick guide to pseudo-code
- appendix B. Big-O notation
- appendix C. Core data structures
- appendix D. Containers as priority queues
- appendix E. Recursion
- appendix F. Classification problems and randomnized algorithm metrics
- index
- inside back cover
Product information
- Title: Advanced Algorithms and Data Structures
- Author(s):
- Release date: July 2021
- Publisher(s): Manning Publications
- ISBN: 9781617295485
You might also like
video
Data Structures and Algorithms: The Complete Masterclass
With the knowledge of data structures and algorithms at your fingertips, you can write efficient computer …
book
A Common-Sense Guide to Data Structures and Algorithms
" Algorithms and data structures are much more than abstract concepts. Mastering them enables you to …
video
Advanced Algorithms and Data Structures, video edition
An accessible introduction to the fundamental algorithms used to run the world. Richard Vaughan, Purple Monkey …
book
Data Structures & Algorithms in Python
LEARN HOW TO USE DATA STRUCTURES IN WRITING HIGH PERFORMANCE PYTHON PROGRAMS AND ALGORITHMS This practical …