algorithm-cheat
algorithm-cheat copied to clipboard
MOVING TO: https://cirosantilli.com/linux-kernel-module-cheat/#algorithms see README. Algorithm tutorials and simple multi-language implementations with unit tests. Test case data in language agnostic...
MOVING to: https://cirosantilli.com/linux-kernel-module-cheat#algorithms
It is early days, but this repo will be progressively split up and moved to either:
- https://cirosantilli.com/linux-kernel-module-cheat#algorithms for runnable algorithms with input and output, because we can factor out some automation with that repo, notably being able to run on gem5 for reproducible timing experiments
- https://github.com/cirosantilli/cirosantilli.github.io for the "theoretical stuff" that is less runnable
Algorithm cheat 
Algorithm tutorials and simple multi-language implementations with unit tests. Test case data in language agnostic file formats. Usually updated when I'm grinding for job interviews :-)
- Implementations
- Getting started
- src/
- data/
- test
- Introduction
- Beauty
- Recursive algorithms
- Turing machine
- Busy beaver
- Out of core algorithms
- Undecidability
- P vs NP
- Beauty
- Data structures
- Graph
- Tree
- Dijkstra
- Map: map.cpp,
- BST: bst.cpp, bst.c
- Hash map: hash_map.cpp
- Heap: Heap.java
- Graph
- Sorting algorithms
- Quicksort: QuickSort.java, QuickSortTail.java
- Merge sort
- Bubble sort
- Parsing, formal languages and their automatons
- Formal language
- Context-free grammar
- Regular grammar
- Regular language
- Programming languages
- Type systems
- String algorithms
- Longest common subsequence
- Longest increasing subsequence
- Maximum subarray
- String search: StringSearchNaive.java, KnuthMorrisPratt.java
- Version string parsing: version_string.c
- Cryptography
- base64
- ECDSA
- GPG
- md5sum
- Linear programming
- Change making
- Out-of-core
- tac: tac.c, Tac.java
- Misc algorithms
- Hanoi tower
- Hash function
- XOR-swap
- Numerical
- Matrix multiplication
- PDE
- Misc
- Bitcoin
- Decimal data type
- Human factors
- Licenses
- Quantum computing
- Security
- Stack Overflow Data Dump
- Bibliography
- TODO
WIP
- Knapsack
- Data structures
- Crit-bit tree
- Disjoint set
- Skip list
- Map
- Set
- Prefix trees
- Trie: trie.c
- Radix tree
- RB tree
- B-tree
- B-tree
- B-plus-tree
- Graph
- Topological sort
- A*
- B*
- Bellman-ford
- Sorting algorithms
- Heap sort: HeapSort.java
- Insertion sort
- Misc
- Error detection
- Numerical Newton's method: newton.py