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 :-)
Switch branches/tags
Nothing to show
Clone or download
Latest commit 8b5abb8 Nov 9, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data-gen CPU bound parallel tests Nov 3, 2015
data Add some C sketches May 17, 2016
src Newthon method Feb 25, 2017
.gitignore Bits and pieces Apr 28, 2016
.travis.yml Merge algorithm and computer science repositories Apr 18, 2015
CONTRIBUTING.md Fix options example. Aug 21, 2014
README.md Update README.md Oct 31, 2017
TODO.md spec2017 Sep 6, 2018
a-star.md Numbered toc Apr 16, 2015
amortized-analysis.md Numbered toc Apr 16, 2015
b-plus-tree.md Numbered toc Apr 16, 2015
b-star.md Numbered toc Apr 16, 2015
b-tree.md Add some C sketches May 17, 2016
base64.md Bits and pieces Apr 28, 2016
beauty.md checkers May 31, 2017
bellman-ford.md Numbered toc Apr 16, 2015
bibliography.md Update bibliography.md Dec 5, 2017
big-o-notation.md tmp Mar 7, 2015
bitcoin.md Move md5 ans base64 in from linux, create openssl cheat Dec 5, 2014
bittorrent.md Move md5 ans base64 in from linux, create openssl cheat Dec 5, 2014
bst.md Add some C sketches May 17, 2016
btree.png btree img, hash function properties. Jul 21, 2014
bubble-sort.md Organize index, make top level headers match filenames Dec 9, 2014
busy-beaver.md sync May 4, 2016
change-making.md Merge algorithm and computer science repositories Apr 18, 2015
complexity-space-inclusion.svg Split p vs np. Sep 1, 2014
context-free-grammar.md split dijkstra Mar 11, 2015
crit-bit-tree.md tmp Mar 7, 2015
cryptography.md sync Jul 10, 2016
decimal-data-type.md Decimal data type Feb 3, 2015
design-patterns.md Organize index, make top level headers match filenames Dec 9, 2014
dfa.md Numbered toc Apr 16, 2015
dijkstra.md Numbered toc Apr 16, 2015
disjoint-set.md Stub map, set Mar 7, 2015
ecdsa.md Move md5 ans base64 in from linux, create openssl cheat Dec 5, 2014
error-detection.md Numbered toc Apr 16, 2015
formal-language.md Dipohantine Sep 28, 2014
getting-started.md Merge algorithm and computer science repositories Apr 18, 2015
gpg.md publish Mar 7, 2016
graph.md Merge algorithm and computer science repositories Apr 18, 2015
hanoi-tower.md Merge algorithm and computer science repositories Apr 18, 2015
hardware.md Fix Markdown style. Jul 25, 2014
hash-function.md Logo Apr 23, 2015
hash-map.md Merge algorithm and computer science repositories Apr 18, 2015
heap-sort.md Numbered toc Apr 16, 2015
heap.md Numbered toc Apr 16, 2015
human-factors.md Millionaire Aug 24, 2015
insertion-sort.md tmp Mar 7, 2015
introduction.md Heap sort index fix Oct 11, 2015
knapsack.md Merge algorithm and computer science repositories Apr 18, 2015
licenses.md gpl and python interpreted modules Jul 26, 2017
ll-parser.md Organize index, make top level headers match filenames Dec 9, 2014
logo.dot Logo Apr 23, 2015
logo.png Logo Apr 23, 2015
longest-common-subsequence.md Merge algorithm and computer science repositories Apr 18, 2015
longest-increasing-subsequence.md Merge algorithm and computer science repositories Apr 18, 2015
map.md Merge algorithm and computer science repositories Apr 18, 2015
matrix-multiplication.md matrix multiplication Mar 28, 2017
maximum-subarray.md Merge algorithm and computer science repositories Apr 18, 2015
md5sum.md Move md5 ans base64 in from linux, create openssl cheat Dec 5, 2014
merge-sort.md Organize index, make top level headers match filenames Dec 9, 2014
misc.md Fix Markdown style. Jul 25, 2014
newton-method.md Newthon method Feb 25, 2017
out-of-core.md tmp Mar 7, 2015
p-vs-np.md Bitcoin Nov 30, 2014
parallel.md Parallel array sum Jun 17, 2015
pde.md matrix multiplication Mar 28, 2017
peg-grammar.md Organize index, make top level headers match filenames Dec 9, 2014
probabilistic-turing-machine.md Most useful section Nov 30, 2014
programming-languages.md sync Jul 10, 2016
push-down-automaton.md Organize index, make top level headers match filenames Dec 9, 2014
quantum-computing.md Organize index, make top level headers match filenames Dec 9, 2014
quicksort.md Move security out to art/ Feb 1, 2016
radix-tree.md Add some C sketches May 17, 2016
rb-tree.md Numbered toc Apr 16, 2015
recurrence-relations.md tmp Mar 7, 2015
recursive-algorithms.md tmp Mar 7, 2015
recursive-descent-parser.md Organize index, make top level headers match filenames Dec 9, 2014
regular-expression.md Dipohantine Sep 28, 2014
regular-grammar.md Dipohantine Sep 28, 2014
regular-language.md Dipohantine Sep 28, 2014
set.md Add some C sketches May 17, 2016
skip-list.md tmp Mar 7, 2015
sort.md tmp Mar 7, 2015
statistics.md bak Nov 10, 2018
string-algorithms.md Heap sort index fix Oct 11, 2015
string-search.md Merge algorithm and computer science repositories Apr 18, 2015
tac.md Merge algorithm and computer science repositories Apr 18, 2015
test sync May 4, 2016
topological-sort.md Logo Apr 23, 2015
tree.md Merge algorithm and computer science repositories Apr 18, 2015
trie.md Add some C sketches May 17, 2016
turing-machine.md Numbered toc Apr 16, 2015
type-systems.md sync Jul 10, 2016
type-theory.md sync Jul 10, 2016
undecidability.md Organize index, make top level headers match filenames Dec 9, 2014
xor-swap.md tmp Mar 7, 2015

README.md

Algorithm cheat logo

Build Status

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 :-)

  1. Implementations
    1. Getting started
    2. src/
    3. data/
    4. test
  2. Introduction
    1. Beauty
      1. Recursive algorithms
    2. Turing machine
      1. Busy beaver
    3. Out of core algorithms
    4. Undecidability
    5. P vs NP
  3. Data structures
    1. Graph
      1. Tree
      2. Dijkstra
    2. Map: map.cpp,
      1. BST: bst.cpp, bst.c
      2. Hash map: hash_map.cpp
      3. Heap: Heap.java
  4. Sorting algorithms
    1. Quicksort: QuickSort.java, QuickSortTail.java
    2. Merge sort
    3. Bubble sort
  5. Parsing, formal languages and their automatons
    1. Formal language
    2. Context-free grammar
    3. Regular grammar
    4. Regular language
  6. Programming languages
    1. Type systems
  7. String algorithms
    1. Longest common subsequence
    2. Longest increasing subsequence
    3. Maximum subarray
    4. String search: StringSearchNaive.java, KnuthMorrisPratt.java
    5. Version string parsing: version_string.c
  8. Cryptography
    1. base64
    2. ECDSA
    3. GPG
    4. md5sum
  9. Linear programming
    1. Change making
  10. Out-of-core
    1. tac: tac.c, Tac.java
  11. Misc algorithms
    1. Hanoi tower
    2. Hash function
    3. XOR-swap
  12. Numerical
    1. Matrix multiplication
    2. PDE
  13. Misc
    1. Bitcoin
    2. Decimal data type
    3. Human factors
    4. Licenses
    5. Quantum computing
    6. Security
  14. Bibliography
  15. TODO

WIP

  1. Knapsack
  2. Data structures
    1. Crit-bit tree
    2. Disjoint set
    3. Skip list
    4. Map
      1. Set
      2. Prefix trees
        1. Trie: trie.c
        2. Radix tree
      3. RB tree
      4. B-tree
        1. B-tree
        2. B-plus-tree
    5. Graph
      1. Topological sort
      2. A*
      3. B*
      4. Bellman-ford
  3. Sorting algorithms
    1. Heap sort: HeapSort.java
    2. Insertion sort
  4. Misc
    1. Error detection
  5. Numerical Newton's method: newton.py