Skip to content

Data Structures and Algorithms

November 29, 2023
April 14, 2023

Top 20 String Coding Problems from Programming Job Interviews - DEV Community 👩‍💻👨‍💻
Algorithms & Data Structures | Learn Algorithms with TypeScript for Interviews | Frontend Masters free

10 (Free) Data Structure and Algorithm Courses Junior Developers Should Explore
10 Data Structure and Algorithms Articles Beginners Should Read this Weekend - DEV Community 👩‍💻👨‍💻
Learn Data Structures and Algorithms – Introduction and Learning Resources
A Visual Introduction to Algorithms

polylog - YouTube
Spanning Tree - YouTube
Introduction - The Last Algorithms Course You'll Need | Frontend Masters free, 2022-09, 9:21:18, by ThePrimeagen

The Algorithms
Algorithms with Go
Algorithms, Part I - Princeton University | Coursera
Algorithms, Part II - Princeton University | Coursera
Algorithms: Design and Analysis, Part 1 - Stanford University | Coursera
Algorithms: Design and Analysis, Part 2 - Stanford University | Coursera
Data Science Tutorials – topcoder
All pages - PEGWiki
Geometry Algorithms TOC
Algorithms - GeeksforGeeks
Algorithms in JavaScript with visual examples. - DEV Community

Beyond3D
Raytracing

Welcome to TheAlgorithms
The Algorithms
Algorithms-Explanation/en at master · TheAlgorithms/Algorithms-Explanation

0 FPS – Mostly geometry
Notes on algorithms - DEV Community 👩‍💻👨‍💻

Think Data Structures – Green Tea Press
Problem Solving with Algorithms and Data Structures using Python — Problem Solving with Algorithms and Data Structures

10 Key Data Structures We Use Every Day - YouTube
Before Your Next Interview Watch This - YouTube
How Important are Algorithms and Data Structures in Backend Engineering? - YouTube

The Sliding Window Pattern

Is there an algorithm to win every (3x3) Tic-Tac-Toe game? - Quora
Tic Tac Toe: Understanding the Minimax Algorithm — Never Stop Building

Fast inverse square root - Wikiwand
Beyond3D - Origin of Quake3's Fast InvSqrt()
Fast Inverse Square Root — A Quake III Algorithm - YouTube

Fizz Buzz Test

research!rsc: Lock-Free Bugs

c++ - Using Boost.Lockfree queue is slower than using mutexes - Stack Overflow
evpp/benchmark_lockfree_vs_mutex.md at master · Qihoo360/evpp
Improving Performance of a Trading System through Lock-Free Programming

cameron314/concurrentqueue: A fast multi-producer, multi-consumer lock-free concurrent queue for C++11
Solving the ABA Problem for Lock-Free Free Lists
A Fast General Purpose Lock-Free Queue for C++
Detailed Design of a Lock-Free Queue
cameron314/readerwriterqueue: A fast single-producer, single-consumer lock-free queue for C++

Database Data Structures

8 Key Data Structures That Power Modern Databases - YouTube
The Secret Sauce Behind NoSQL: LSM Tree - YouTube
Data Structures That Power Your Database - YouTube
Data Structures of Databases - Functional Bits

Trees

Trie

aka digital tree, prefix tree

Trie - Wikiwand

Tries - YouTube Building a Trie data structure in Go

How Trie Data Structures Work – Validate User Input with Automated Trie Visualization with Python

Binary trees

Binary search tree - Wikiwand
Self-balancing binary search tree - Wikiwand
B-tree - Wikiwand generalized BST, can have >2 children
B+ tree - Wikiwand wide tree where node contains only keys

Log Structured Merge (LSM) Tree

Log-structured merge-tree - Wikiwand
The Secret Sauce Behind NoSQL: LSM Tree - YouTube

Bloom Filters

Bloom Filters Explained by Example - YouTube
Bloom Filters - YouTube

Covariance and Contravariance

Covariance and contravariance (computer science) - Wikiwand C# uses in, out keywords to control variance
c# - Covariance and contravariance in programming languages - Stack Overflow
Covariance and Contravariance - withoutbugs.com
C# : Is Variance (Covariance / Contravariance) another word for Polymorphism? - Stack Overflow

State Machine

reactive-programming#Xstate

Finite-state machine - Wikiwand
Deterministic finite automaton - Wikiwand
Finite State Machines
Chomsky Language Levels - YouTube

Automata & Python - Computerphile - YouTube
Automata & Python (Long Version) - Computerphile - YouTube
Non-Deterministic Automata - Computerphile - YouTube

Ragel State Machine Compiler
State Machines & Tools--Quantum Leaps

SCXML - Wikiwand
State Chart XML (SCXML): State Machine Notation for Control Abstraction
SCXML - Commons SCXML

UML State Chart Autocoding for the Mars Science Laboratory (MSL) Mission, Eddie Benowitz, JPL - YouTube
JPLOpenSource/SCA: JPL Statechart Autocoder Rev. 2

Search results · PyPI
Automat: Self-service finite-state machines for the programmer on the go. — automat documentation
glyph/automat: Self-service finite-state machines for the programmer on the go.

Coding State Machines in C and C++ | Embedded Systems Experts
c - state machines tutorials - Stack Overflow

Greedy Algorithms

Greedy Algorithms Tutorial – Solve Coding Challenges - YouTube

Shortest Distance/Pathfinding

A Comparison of Pathfinding Algorithms - YouTube

Dijkstra's Algorithm - Computerphile - YouTube
Gamedev: In-depth Topics - YouTube Python
pygame_tutorials/examples/pathfinding at master · kidscancode/pygame_tutorials · GitHub
How Dijkstra's Algorithm Works - YouTube

A* Algorithm:

A* (A Star) Search Algorithm - Computerphile - YouTube
A* ALGORITHM BASICS FOR PATH FINDING & HEURISTICS METHODS : ARTIFICIAL INTELLIGENCE
Introduction to the A* Algorithm
The hidden beauty of the A* algorithm - YouTube
Pathfinding in Unity DOTS! (Insane Speed!!!) - YouTube

Maze Solving - Computerphile - YouTube
mikepound/mazesolving: A variety of algorithms to solve mazes from an input image Python

Easy pathfinding in python [almost without math] - YouTube

How Command & Conquer: Tiberian Sun Solved Pathfinding | War Stories | Ars Technica - YouTube

Sorting

Holy Grail: O(NlogN), in-place, stable

The Sorting Algorithm Olympics - Who is the Fastest of them All - YouTube

Kuvina Saydaki
Explaining EVERY Sorting Algorithm (part 1) - YouTube
Explaining EVERY Sorting Algorithm (part 2) - YouTube
Explaining EVERY Sorting Algorithm: Variants and Hybrids - YouTube
The Perfect Sorting Algorithm?? Block Sort Explained (Wiki Sort, Grail Sort) - YouTube

Radix Sort

Why is Radix Sort so Fast? Part 1 Why are Comparison Sorts so Slow? - YouTube Comparison sort: O(NlogN)
Why is Radix Sort so Fast? Part 2 Radix Sort - YouTube Counting sort: O(N)

QSort

QuickSort Exposed

Natural sort

python-snippets#Natural sort

Sorting for Humans : Natural Sort Order

DaveKoelle.com | The Alphanum Algorithm
c# - Use own IComparer with Linq OrderBy - Stack Overflow

Hash table

Hashtable Naïveté – CrashedTestDummy
C++ STL 之哈希表 | unordered_map | 「浮生若梦」 - sczyh30's blog
How does C++ STL unordered_map resolve collisions? - Stack Overflow
Class template unordered_map - boost

Random Number Generator

Random number generation - Wikiwand
Diehard tests - Wikiwand
Empirical Testing of Random Number Generators
Birthday problem - Wikiwand

TIFU by using Math.random() — Medium
V8 JavaScript Engine: There's Math.random(), and then there's Math.random()

Perlin noise

Perlin noise - Wikiwand a smoother gradient noise
The Theory of Noise: An Overview of Perlin Noise - YouTube
How to turn a few Numbers into Worlds (Perlin Noise) - YouTube
Understanding Perlin Noise
Mathf.PerlinNoise | Smooth Random Values | Unity Quick Tutorial - YouTube

Compression

Kolmogorov complexity - Wikiwand complexity of data
Berry's Paradox - An Algorithm For Truth - YouTube

compression - How are zlib, gzip and zip related? What do they have in common and how are they different? - Stack Overflow
A Quick Benchmark: Gzip vs. Bzip2 vs. LZMA
Quick Benchmark: Gzip vs Bzip2 vs LZMA vs XZ vs LZ4 vs LZO - CatchChallenger wiki
Comparison of Brotli, Deflate, Zopfli, LZMA, LZHAM and Bzip2 Compression Algorithms PDF, 2015

zlib-ng/zlib-ng: zlib replacement with optimizations for "next generation" systems.

Elegant Compression in Text (The LZ 77 Method) - Computerphile - YouTube
Entropy in Compression - Computerphile - YouTube

How Computers Compress Text: Huffman Coding and Huffman Trees - YouTube

Error Correction

Error Correction - Computerphile - YouTube
Multiple Dimension Error Correction - Computerphile - YouTube
Error Correction & International Book Codes - Computerphile - YouTube

How to send a self-correcting message (Hamming codes) - YouTube
Hamming codes part 2, the elegance of it all - YouTube

Visualization

SORTING
Sorting Algorithms Explained Visually - YouTube

VisuAlgo - visualising data structures and algorithms through animation
Red Blob Games
SIGHT & LIGHT - How to create 2D visibility/shadow effects for your game
Visualizing Algorithms
Algorithm Visualizer source

Sketching

Non-exact (rounded) results is good enough for many scenarios.

Sketching & Scaling Pt. 1: What the #@!$ is Sketching? | by Kiip | Medium
Sketching & Scaling Pt. 2: Bloom Filters | by Kiip | Medium
Sketching & Scaling Pt. 3: Everyday HyperLogLog | by Kiip | Medium
Sketching & Scaling Pt. 4: Firehose Analytics | by Kiip | Medium

Dynamic Programming

an optimization over plain recursion by memoizing results of overlapping sub-problems

Dynamic programming - Wikiwand
Dynamic Programming - GeeksforGeeks
Dynamic Programming - Learn to Solve Algorithmic Problems & Coding Challenges - YouTube (memoized) recursion and tabulation
How to Count Dice Rolls - An Introduction to Dynamic Programming - YouTube
Mastering Dynamic Programming - How to solve any interview problem (Part 1) - YouTube
Solving the subsets problem with dynamic programming - YouTube
What can “The Simpsons” teach us about Dynamic Programming? - YouTube several typical examples

Decision Problem (Can)
Combinatorics Problem (How)
Optimization Problem (Best)

Constraint programming

Constraint programming - Wikiwand
Constraint satisfaction problem - Wikiwand

Satisfiability modulo theories - Wikiwand
Z3 Theorem Prover - Wikiwand
Z3Prover/z3: The Z3 Theorem Prover
z3-solver · PyPI
Python: package z3
Home · Z3Prover/z3 Wiki
Programming Z3
Z3: An Efficient SMT Solver | SpringerLink
Programming Z3 - YouTube
Analyzing Programs with Z3 - YouTube

"z3" is actual magic (intermediate) anthony explains #425 - YouTube
F2020 - Intro to Constraint Solving with z3 - YouTube Python 2 sample
Modeling functions with Z3 - YouTube