Data Structures & Algorithms Resource List Part 1 ================================================= Guess the author of the following quotes: ------------------------------------------------------------------------ ### Data Structures & Algorithms Resource List Part 1 Guess the author of the following quotes: > *Talk is cheap. Show me the code.* > *Software is like sex: it’s better when it’s free.* > *Microsoft isn’t evil, they just make really crappy operating systems.*
### Update: #### Here’s some more: - The Framework for Learning Algorithms and intense problem solving exercises - Algs4: Recommended book for Learning Algorithms and Data Structures - An analysis of Dynamic Programming - Dynamic Programming Q&A — What is Optimal Substructure - The Framework for Backtracking Algorithm - Binary Search in Detail: I wrote a Poem - The Sliding Window Technique - Difference Between Process and Thread in Linux - Some Good Online Practice Platforms - Dynamic Programming in Details - Dynamic Programming Q&A — What is Optimal Substructure - Classic DP: Longest Common Subsequence - Classic DP: Edit Distance - Classic DP: Super Egg - Classic DP: Super Egg (Advanced Solution) - The Strategies of Subsequence Problem - Classic DP: Game Problems - Greedy: Interval Scheduling - KMP Algorithm In Detail - A solution to all Buy Time to Buy and Sell Stock Problems - A solution to all House Robber Problems - 4 Keys Keyboard - Regular Expression - Longest Increasing Subsequence - The Framework for Learning Algorithms and intense problem solving exercises - Algs4: Recommended book for Learning Algorithms and Data Structures - Binary Heap and Priority Queue - LRU Cache Strategy in Detail - Collections of Binary Search Operations - Special Data Structure: Monotonic Stack - Special Data Structure: Monotonic Stack - Design Twitter - Reverse Part of Linked List via Recursion - Queue Implement Stack/Stack implement Queue - My Way to Learn Algorithm - The Framework of Backtracking Algorithm - Binary Search in Detail - Backtracking Solve Subset/Permutation/Combination - Diving into the technical parts of Double Pointers - Sliding Window Technique - The Core Concept of TwoSum Problems - Common Bit Manipulations - Breaking down a Complicated Problem: Implement a Calculator - Pancake Sorting Algorithm - Prefix Sum: Intro and Concept - String Multiplication - FloodFill Algorithm in Detail - Interval Scheduling: Interval Merging - Interval Scheduling: Intersections of Intervals - Russian Doll Envelopes Problem - A collection of counter-intuitive Probability Problems - Shuffle Algorithm - Recursion In Detail - How to Implement LRU Cache - How to Find Prime Number Efficiently - How to Calculate Minimium Edit Distance - How to use Binary Search - How to efficiently solve Trapping Rain Water Problem - How to Remove Duplicates From Sorted Array - How to Find Longest Palindromic Substring - How to Reverse Linked List in K Group - How to Check the Validation of Parenthesis - How to Find Missing Element - How to Find Duplicates and Missing Elements - How to Check Palindromic LinkedList - How to Pick Elements From an Infinite Arbitrary Sequence - How to Schedule Seats for Students - Union-Find Algorithm in Detail - Union-Find Application - Problems that can be solved in one line - Find Subsequence With Binary Search - Difference Between Process and Thread in Linux - You Must Know About Linux Shell - You Must Know About Cookie and Session - Cryptology Algorithm - Some Good Online Practice Platforms ### Algorithms: - 100 days of algorithms - Algorithms — Solved algorithms and data structures problems in many languages. - Algorithms by Jeff Erickson (Code) (HN) - Top algos/DS to learn - Some neat algorithms - Mathematical Proof of Algorithm Correctness and Efficiency (2019) - Algorithm Visualizer — Interactive online platform that visualizes algorithms from code. - Algorithms for Optimization book - Collaborative book on algorithms (Code) - Algorithms in C by Robert Sedgewick - Algorithm Design Manual - MIT Introduction to Algorithms course (2011) - How to implement an algorithm from a scientific paper (2012) - Quadsort — Stable non-recursive merge sort named quadsort. - System design algorithms — Algorithms you should know before system design. - Algorithms Design book - Think Complexity - All Algorithms implemented in Rust - Solutions to Introduction to Algorithms book (Code) - Maze Algorithms (2011) (HN) - Algorithmic Design Paradigms book (Code) - Words and buttons Online Blog (Code) - Algorithms animated - Cache Oblivious Algorithms (2020) (HN) - You could have invented fractional cascading (2012) - Guide to learning algorithms through LeetCode (Code) (HN) - How hard is unshuffling a string? - Optimization Algorithms on Matrix Manifolds - Problem Solving with Algorithms and Data Structures (HN) (PDF) - Algorithms implemented in Python - Algorithms implemented in JavaScript - Algorithms & Data Structures in Java - Wolfsort — Stable adaptive hybrid radix / merge sort. - Evolutionary Computation Bestiary — Bestiary of evolutionary, swarm and other metaphor-based algorithms. - Elements of Programming book — Decomposing programs into a system of algorithmic components. (Review) (HN) (Lobsters) - Competitive Programming Algorithms - CPP/C — C/C++ algorithms/DS problems. - How to design an algorithm (2018) - CSE 373 — Introduction to Algorithms, by Steven Skiena (2020) - Computer Algorithms II course (2020) - Improving Binary Search by Guessing (2019) - The case for a learned sorting algorithm (2020) (HN) - Elementary Algorithms — Introduces elementary algorithms and data structures. Includes side-by-side comparisons of purely functional realization and their imperative counterpart. - Combinatorics Algorithms for Coding Interviews (2018) - Algorithms written in different programming languages (Web) - Solving the Sequence Alignment problem in Python (2020) - The Sound of Sorting — Visualization and “Audibilization” of Sorting Algorithms. (Web) - Miniselect: Practical and Generic Selection Algorithms (2020) - The Slowest Quicksort (2019) - Functional Algorithm Design (2020) - Algorithms To Live By — Book Notes - Numerical Algorithms (2015) - Using approximate nearest neighbor search in real world applications (2020) - In search of the fastest concurrent Union-Find algorithm (2019) - Computer Science 521 Advanced Algorithm Design ------------------------------------------------------------------------
### Data Structures: - Data Structures and Algorithms implementation in Go - Which algorithms/data structures should I “recognize” and know by name? - Dictionary of Algorithms and Data Structures - Phil’s Data Structure Zoo - The Periodic Table of Data Structures (HN) - Data Structure Visualizations (HN) - Data structures to name-drop when you want to sound smart in an interview - On lists, cache, algorithms, and microarchitecture (2019) - Topics in Advanced Data Structures (2019) (HN) - CS166 Advanced DS Course (2019) - Advanced Data Structures (2017) (HN) - Write a hash table in C - Python Data Structures and Algorithms - HAMTs from Scratch (2018) - JavaScript Data Structures and Algorithms - Implementing a Key-Value Store series - Open Data Structures — Provide a high-quality open content data structures textbook that is both mathematically rigorous and provides complete implementations. (Code) - A new analysis of the false positive rate of a Bloom filter (2009) - Ideal Hash Trees - RRB-Trees: Efficient Immutable Vectors - Some data structures and algorithms written in OCaml - Let’s Invent B(+)-Trees (HN) - Anna — Low-latency, cloud-native KVS. - Persistent data structures thanks to recursive type aliases (2019) - Log-Structured Merge-Trees (2020) - Bloom Filters for the Perplexed (2017) - Understanding Bloom Filters (2020) - Dense vs. Sparse Indexes (2020) - Data Structures and Algorithms Problems - Data Structures & Algorithms I Actually Used Working at Tech Companies (2020) (Lobsters) (HN) - Let’s implement a Bloom Filter (2020) (HN) - Data Structures Part 1: Bulk Data (2019) (Lobsters) - Data Structures Explained - Introduction to Cache-Oblivious Data Structures (2018) - The Daily Coding newsletter — Master JavaScript and Data Structures. - Lectures Note for Data Structures and Algorithms (2019) - Mechanically Deriving Binary Tree Iterators with Continuation Defunctionalization (2020) - Segment Tree data structure - Structure of a binary state tree (2020) - Introductory data structures and algorithms - Applying Textbook Data Structures for Real Life Wins (2020) (HN) - Michael Scott — Nonblocking data structures lectures (2020) — Nonblocking concurrent data structures are an increasingly valuable tool for shared-memory parallel programming. - Scal — High-performance multicore-scalable data structures and benchmarks. (Web) - Hyperbolic embedding implementations - Morphisms of Computational Constructs — Visual catalogue + story of morphisms displayed across computational structures. - What is key-value store? (build-your-own-x) (2020) - Lesser Known but Useful Data Structures - Using Bloom filters to efficiently synchronize hash graphs (2020) - Bloom Filters by Example (Code) - Binary Decision Diagrams (HN) - 3 Steps to Designing Better Data Structures (2020) - Sparse Matrices (2019) (HN) - Algorithms & Data Structures in C++ - Fancy Tree Traversals (2019) - The Robson Tree Traversal (2019) - Data structures and program structures - cdb — Fast, reliable, simple package for creating and reading constant databases. - PGM-index — Learned indexes that match B-tree performance with 83x less space. (HN) (Code) - Structural and pure attributes - Cache-Tries: O(1) Concurrent Lock-Free Hash Tries (2018) By Bryan Guner on [June 4, 2021](https://medium.com/p/8bad647a8ad8). Canonical link Exported from [Medium](https://medium.com) on September 23, 2021.