Using Advanced Data Structures in Modern Applications

Through a strong focus on intuition, examples, and real-world scenarios, you'll learn the inner workings of some very powerful data structures, and see how they can help you to both achieve great performance and solve seemingly complex problems.
Course info
Rating
(28)
Level
Advanced
Updated
December 27, 2017
Duration
4h 21m
Table of contents
Course Overview
Introduction
Hashing 1: Hash Functions and Hash Tables
Hashing 2: Saving Space with Probabilistic Bloom Filters
Hashing 3: Saving Space and Allowing Deletion with Cuckoo Filters
Querying Space and Time with Tree Structures
Efficient Set Operations with Disjoint-set Structures
Prefix-querying Sequences Efficiently with Tries
Infix-querying Sequences Efficiently with Suffix Trees
Description
Course info
Rating
(28)
Level
Advanced
Updated
December 27, 2017
Duration
4h 21m
Description

Many problems in modern applications can be solved in a simple and elegant way by utilizing a specific data structure. In this course, Using Advanced Data Structures in Modern Applications, you will learn a variety of such data structures that are incredibly useful but normally outside the scope of introductory courses in programming or algorithmics. The course is loaded with examples and focuses on practicality rather than formulas and proofs. First, you will dive into the exciting world of hashing and see how different hash functions and hash table implementations perform very differently. Next, you will learn how bloom and cuckoo filters work and how they can be used to reduce communication between infrastructure components and prevent a cache from being wasted on one-off items. Then, you will discover how to efficiently index and query geographical positions and numeric properties using spatial indexing mechanisms such as geohashing, B-trees, R-trees, and M-trees. After that, you will explore the inner workings of disjoint-set data structures and see how they can be used to efficiently form clusters of related users of an application. Finally, you learn how tries and suffix trees work and how to easily build an auto-completion back-end upon them. By the end of this course, you will have a large toolbox of data structures at hand that can help you solve a number of apparently complex problems with minimal effort.

About the author
About the author

Rasmus is a software developer and architect, an entrepreneur and an idealist, with a background as PhD in the field of computer science, databases, and algorithms and with a long standing passion for teaching.

More from the author
An Introduction to Algorithmics
Intermediate
4h 4m
7 Mar 2016