# Algorithms

Algorithms for Modern Hardware & Algorithm Wiki are useful.

## Interesting algorithms

## Notes

- Mocking up the problem on paper or white board is crucial.
- The functionality of a hash table can be extrapolated and used to solve many problems at the cost of efficiency.
- Arrays can be used to back most higher level data structures. Sometimes a “data structure” is no more than some clever math for accessing locations in an array.

## Links

- 100 days of algorithms
- Algorithms - Solved algorithms and data structures problems in many languages.
- Algorithms by Jeff Erickson (2019) (Code) (HN) (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 (Code)
- Collaborative book on algorithms (Code)
- Algorithms in C by Robert Sedgewick
- Algorithm Design Manual
- MIT Introduction to Algorithms course (2020) (2011 course) (HN)
- 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
- Eytzinger Binary Search
- Mazes for Programmers: Code Your Own Twisty Little Passages (2015)
- Papers anyone teaching algorithms & data should include (2021)
- The fastest and shortest algorithm for all well-defined problems (2002) (HN)
- Reasonable Effectiveness of the Multiplicative Weights Update Algorithm (2017) (HN)
- Algorithms for Cartographic Visualization (2012)
- 145 C++ algorithms
- Exploring rectangle packing algorithms (2020)
- Quicksort and k-th smallest elements
- How Fast Do Algorithms Improve? (HN)
- Algorithms | Coursera
- Is this the simplest (and most surprising) sorting algorithm? (2021) (HN) (Lobsters)
- Algorithm Problem Solving Club
- How Fast Do Algorithms Improve? (2021)
- Unconventional Sorting Algorithms (2021) (HN)
- What does algorithm intuition really mean (2021)
- The Design and Topology of an Algorithm
- Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne (Java Code) (Go Code)
- Ask HN: Looking for a book on algorithms and data structures (2021)
- The Sliding Window Pattern (2021) - Chocolates and a way to make your array algorithms a bit faster.
- Visual Debugger - Playground for algorithm writing. (Code)
- Visualizer for common algorithm patterns (Code)
- A Neat Approximation Algorithm (2021)
- How a Kalman filter works, in pictures (HN)
- Implementing Marching Squares (2020)
- Speeding up Dijkstra by a factor of 2700 (2021) (HN)
- A surprisingly hard CS problem: sums of square roots (2018) (HN)
- Abstractions, Their Algorithms, and Their Compilers (2022) (HN)
- Grokking Algorithms - Illustrated guide for programmers and other curious people. (Code)
- Algorithms for Modern Hardware (Docs Code) (Code) (HN)
- Introduction to the A* Algorithm
- Data diffs: Algorithms for explaining what changed in a dataset (2022)
- Breadth First Search in Rust (2022)
- Damn Cool Algorithms: Levenshtein Automata (2010) (HN)
- Binary search with confidence (HN)
- Algorithm Wiki | Interactive algorithms
- Advanced Algorithms (CS 224) (2022)
- Restartable sequences with the polysemic null segment selector (2018)
- Engineering In-place (Shared-memory) Sorting Algorithms (2020) (Code)
- Introduction to Algorithms, Fourth Edition Book (Solutions)
- Algorithms implemented in C, Rust, and Python
- Use Fast Data Algorithms (2021)
- Educational Parallel Algorithm Collection
- Visualizing Algorithms
- Introduction to the Analysis of Algorithms
- Understanding MapReduce (2022) (Tweet)
- Algorithms you should know before you take system design interviews (2022) (HN)
- Elements of Programming Book
- Algorithms & Data Structures studies
- CS 168: The Modern Algorithmic Toolbox, Spring 2022 (HN)
- Graph Algorithms Cheat Sheet For Coding Interviews
- Lockfree Algorithms (2010) (HN)
- Algorithmic Resources - Curated list of Topic wise Theory and Questions to Get You Started On Competitive Coding.
- Collection of array rotation algorithms
- ICPC Archives - Collection of problems and solutions of final and regional ICPC contests.
- The Wavefunction Collapse Algorithm explained very clearly (2018)
- Notes on Algorithms (Code)
- An Algorithm for Routing Vectors in Sequences (2022) (Code)
- Book Review: Algorithms to Live By - The Computer Science of Human Decisions (HN)
- Zurich Algorithms Course (2020) (Code)
- Go Algorithms and Data Structures and Go Solution for LeetCode algorithm problems
- Introduction to data structures and algorithms in Python
- Algorithms and Data Structure Visualization Book (Code)
- Negative-Weight Single-Source Shortest Paths in Near-linear Time (2022) (HN)
- Compromise-free path finding on a navigation mesh (2017) (HN)
- The hidden beauty of the A* algorithm (2023)
- Data Structures and Algorithms Lecture Notes