Advanced Algorithms and Data Structures, video edition

Video description

An accessible introduction to the fundamental algorithms used to run the world.
Richard Vaughan, Purple Monkey Collective

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 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.

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

NARRATED BY JULIE BRIERLEY

Table of contents

  1. Chapter 1 Introducing data structures
  2. Part 1. Improving over basic data structures
  3. Chapter 1 Describing a data structure
  4. Chapter 1 Packing your knapsack: Data structures meet the real world
  5. Chapter 1 Algorithms to the rescue
  6. Chapter 2 Improving priority queues: d-way heaps
  7. Chapter 2 Solutions at hand: Keeping a sorted list
  8. Chapter 2 Concrete data structures
  9. Chapter 2 Priority, min-heap, and max-heap
  10. Chapter 2 How to implement a heap
  11. Chapter 2 PushDown
  12. Chapter 2 Top
  13. Chapter 2 Heapify
  14. Chapter 2 Use case: Find the k largest elements
  15. Chapter 2 More use cases
  16. Chapter 2 Analysis of branching factor
  17. Chapter 2 Performance analysis: Finding the best branching factor
  18. Chapter 2 Interpreting results
  19. Chapter 2 The mystery with heapify
  20. Chapter 3 Treaps: Using randomization to balance binary search trees
  21. Chapter 3 Treap
  22. Chapter 3 A few design questions
  23. Chapter 3 Delete
  24. Chapter 3 Applications: Randomized treaps
  25. Chapter 3 Performance analysis and profiling
  26. Chapter 3 Profiling height
  27. Chapter 3 Profiling memory usage
  28. Chapter 4 Bloom filters: Reducing the memory for tracking content
  29. Chapter 4 Alternatives to implementing a dictionary
  30. Chapter 4 Concrete data structures
  31. Chapter 4 Binary search tree: Every operation is logarithmic
  32. Chapter 4 Implementation
  33. Chapter 4 Constructor
  34. Chapter 4 Applications
  35. Chapter 4 Why Bloom filters work
  36. Chapter 4 Performance analysis
  37. Chapter 4 Explanation of the false-positive ratio formula
  38. Chapter 4 Improved variants
  39. Chapter 5 Disjoint sets: Sub-linear time processing
  40. Chapter 5 Reasoning on solutions
  41. Chapter 5 Naïve solution
  42. Chapter 5 Using a tree-like structure
  43. Chapter 5 Heuristics to improve the running time
  44. Chapter 5 Applications
  45. Chapter 6 Trie, radix trie: Efficient string search
  46. Chapter 6 Trie
  47. Chapter 6 Search
  48. Chapter 6 Insert
  49. Chapter 6 Keys matching a prefix
  50. Chapter 6 Radix tries
  51. Chapter 6 Search
  52. Chapter 6 Applications
  53. Chapter 6 String sorting
  54. Chapter 7 Use case: LRU cache
  55. Chapter 7 First attempt: Remembering values
  56. Chapter 7 Handling asynchronous calls
  57. Chapter 7 Memory is not enough (literally)
  58. Chapter 7 Getting rid of stale data: LRU cache
  59. Chapter 7 Temporal ordering
  60. Chapter 7 When fresher data is more valuable: LFU
  61. Chapter 7 How to use cache is just as important
  62. Chapter 7 Solving concurrency (in Java)
  63. Chapter 7 Read locks
  64. Part 2. Multidimensional queries
  65. Chapter 8 Nearest neighbors search
  66. Chapter 8 Simplifying things to get a hint
  67. Chapter 8 Moving to k-dimensional spaces
  68. Chapter 9 K-d trees: Multidimensional data indexing
  69. Chapter 9 Constructing the BST
  70. Chapter 9 Methods
  71. Chapter 9 Balanced tree
  72. Chapter 9 Remove
  73. Chapter 9 Nearest neighbor
  74. Chapter 9 Region search
  75. Chapter 10 Similarity Search Trees: Approximate nearest neighbors search for image retrieval
  76. Chapter 10 R-tree
  77. Chapter 10 Inserting points in an R-tree
  78. Chapter 10 Similarity search tree
  79. Chapter 10 SS-tree search
  80. Chapter 10 Insert
  81. Chapter 10 Insertion: Split nodes
  82. Chapter 10 Delete
  83. Chapter 10 Similarity Search
  84. Chapter 10 Approximated similarity search
  85. Chapter 10 SS+-tree
  86. Chapter 10 Reducing overlap
  87. Chapter 11 Applications of nearest neighbor search
  88. Chapter 11.Centralized application
  89. Chapter 11 Moving to a distributed application
  90. Chapter 11 Other applications
  91. Chapter 11 Multidimensional DB queries optimization
  92. Chapter 12 Clustering
  93. Chapter 12 Types of learning
  94. Chapter 12 K-means
  95. Chapter 12 The curse of dimensionality strikes again
  96. Chapter 12 Boosting k-means with k-d trees
  97. Chapter 12 DBSCAN
  98. Chapter 12 From definitions to an algorithm
  99. Chapter 12 And finally, an implementation
  100. Chapter 12 OPTICS
  101. Chapter 12 From reachability distance to clustering
  102. Chapter 12 Hierarchical clustering
  103. Chapter 12. Evaluating clustering results: Evaluation metrics
  104. Chapter 13 Parallel clustering: MapReduce and canopy clustering
  105. Chapter 13 Canopy clustering
  106. Chapter 13 MapReduce
  107. Chapter 13 First map, then reduce
  108. Chapter 13 MapReduce k-means
  109. Chapter 13 Parallelizing canopy clustering
  110. Chapter 13 MapReduce canopy clustering
  111. Chapter 13 MapReduce DBSCAN - Part 1
  112. Chapter 13 MapReduce DBSCAN - Part 2
  113. Part 3. Planar graphs and minimum crossing number
  114. Chapter 14 An introduction to graphs: Finding paths of minimum distance
  115. Chapter 14 Implementing graphs
  116. Chapter 14 Graph properties
  117. Chapter 14 Graph traversal: BFS and DFS
  118. Chapter 14 Reconstructing the path to target
  119. Chapter 14 Shortest path in weighted graphs: Dijkstra
  120. Chapter 14 Beyond Dijkstra’s algorithm: A*
  121. Chapter 14 How good is A* search?
  122. Chapter 14 Heuristics as a way to balance real-time data
  123. Chapter 15 Graph embeddings and planarity: Drawing graphs with minimal edge intersections
  124. Chapter 15 Some basic definitions
  125. Chapter 15 Planar graphs
  126. Chapter 15 Planarity testing
  127. Chapter 15 Improving performance
  128. Chapter 15 Non-planar graphs
  129. Chapter 15 Rectilinear crossing number
  130. Chapter 15 Edge intersections
  131. Chapter 15 Polylines
  132. Chapter 15 Intersections between quadratic Bézier curves
  133. Chapter 16 Gradient descent: Optimization problems (not just) on graphs
  134. Chapter 16 Did you just say heuristics?
  135. Chapter 16 How optimization works
  136. Chapter 16 Gradient descent
  137. Chapter 16 When is gradient descent appliable?
  138. Chapter 16 Applications of gradient descent
  139. Chapter 16 Gradient descent for graph embedding
  140. Chapter 17 Simulated annealing: Optimization beyond local minima
  141. Chapter 17 Sometimes you need to climb up to get to the bottom
  142. Chapter 17 Why simulated annealing works
  143. Chapter 17 Short-range vs long-range transitions
  144. Chapter 17 Simulated annealing + traveling salesman
  145. Chapter 17 Exact vs approximated solutions
  146. Chapter 17 State transitions
  147. Chapter 17 Simulated annealing and graph embedding
  148. Chapter 17 Force-directed drawing
  149. Chapter 18 Genetic algorithms: Biologically inspired, fast-converging optimization
  150. Chapter 18 Inspired by nature
  151. Chapter 18 Chromosomes
  152. Chapter 18 Natural selection
  153. Chapter 18 Selecting individuals for mating
  154. Chapter 18 Crossover
  155. Chapter 18 The genetic algorithm template
  156. Chapter 18 TSP
  157. Chapter 18 Results and parameters tuning
  158. Chapter 18 Minimum vertex cover
  159. Chapter 18 Other applications of the genetic algorithm
  160. Chapter 18 Beyond genetic algorithms
  161. Appendix A. A quick guide to pseudo-code
  162. Appendix A Conditional instructions
  163. Appendix A Blocks and indent
  164. Appendix B. Big-O notation
  165. Appendix B Notation
  166. Appendix C. Core data structures
  167. Appendix C Tree
  168. Appendix C Hash table
  169. Appendix D. Containers as priority queues
  170. Appendix E. Recursion
  171. Appendix E Tail recursion
  172. Appendix F. Classification problems and randomnized algorithm metrics
  173. Appendix F Classification metrics

Product information

  • Title: Advanced Algorithms and Data Structures, video edition
  • Author(s): Marcello La Rocca
  • Release date: May 2021
  • Publisher(s): Manning Publications
  • ISBN: None