Advanced Algorithms and Data Structures

  • 23h 31m 47s
  • Marcello La Rocca
  • Manning Publications
  • 2021

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 Map Reduce
  • Solve logistics problems using graphs and optimization algorithms
About the audience

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.

In this Audiobook

  • Chapter 1 - Introducing data structures
  • Chapter 2 - Improving priority queues: d-way heaps
  • Chapter 3 - Treaps: Using randomization to balance binary search trees
  • Chapter 4 - Bloom filters: Reducing the memory for tracking content
  • Chapter 5 - Disjoint sets: Sub-linear time processing
  • Chapter 6 - Trie, radix trie: Efficient string search
  • Chapter 7 - Use case: LRU cache
  • Chapter 8 - Nearest neighbors search
  • Chapter 9 - K-d trees: Multidimensional data indexing
  • Chapter 10 - Similarity Search Trees: Approximate nearest neighbors search for image retrieval
  • Chapter 11 - Applications of nearest neighbor search
  • Chapter 12 - Clustering
  • Chapter 13 - Parallel clustering: MapReduce and canopy clustering
  • Chapter 14 - An introduction to graphs: Finding paths of minimum distance
  • Chapter 15 - Graph embeddings and planarity: Drawing graphs with minimal edge intersections
  • Chapter 16 - Gradient descent: Optimization problems (not just) on graphs
  • Chapter 17 - Simulated annealing: Optimization beyond local minima
  • Chapter 18 - Genetic algorithms: Biologically inspired, fast-converging optimization