Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/allalgorithms/algorithms

The All ▲lgorithms documentation website.
https://github.com/allalgorithms/algorithms

algorithms allalgorithms bit-manipulation c clustering cpp csharp game-theory go greedy-algorithm hacktoberfest java javascript numerical-analysis python ruby selection-algorithm sort sorting-algorithms swift

Last synced: 3 days ago
JSON representation

The All ▲lgorithms documentation website.

Awesome Lists containing this project

README

        










Algorithms Logo












What is an algorithm?   
Contributing   
Stickers & T-Shirts



Twitter
   

Instagram
   

Github
   




Huge collection of All ▲lgorithms implemented in multiple languages






## See

- [What is an algorithm](#what-is-an-algorithm)
- [Contributing](https://github.com/AllAlgorithms/algorithms/blob/master/.github/contributing.md)
- [Code of Conduct](https://github.com/AllAlgorithms/algorithms/blob/master/.github/code-of-conduct.md)
- [Stickers and T-Shirts](https://www.redbubble.com/people/abranhe/works/34285088)
- [Twitter](https://twitter.com/AllAlgorithms)
- [Instagram](https://instagram.com/AllAlgorithms)
- [Algorithms Categories](#categories)
- [Maintainers](#maintainers)
- [License](#license)

## What is an algorithm?

Informally, an algorithm is any well-defined computational procedure that takes
some value, or set of values, as input and produces some value, or set of values, as
output. An algorithm is thus a sequence of computational steps that transform the
input into the output.

An algorithm should have three important characteristics to be considered valid:

- **It should be finite**: If your algorithm never ends trying to solve the problem
it was designed to solve then it is useless
- **It should have well defined instructions**: Each step of the algorithm has to
be precisely defined; the instructions should be unambiguously specified for each case.
- **It should be effective**: The algorithm should solve the problem it was designed
to solve. And it should be possible to demonstrate that the algorithm converges with
just a paper and pencil.

## Categories

> Structure of The All ▲lgoritms project

- [Artificial Intelligence](#artificial-intelligence)
- [Backtracking](#backtracking)
- [Bit Manipulation](#bit-manipulation)
- [Cellular Automaton](#cellular-automaton)
- [Ciphers](#ciphers)
- [Computational Geometry](#computational-geometry)
- [Cryptography](#cryptography)
- [Data Structures](#data-structures)
- [Divide and conquer](#divide-and-conquer)
- [Dynamic Programming](#dynamic-programming)
- [Gaming Theory](#gaming-theory)
- [Graphs](#graphs)
- [Greedy Algorithms](#greedy-algorithms)
- [Math](#math)
- [Networking](#networking)
- [Numerical Analysis](#numerical-analysis)
- [Operating system](#operating-system)
- [Randomized Algorithms](#randomized-algorithms)
- [Searches](#searches)
- [Selections Algorithms](#selections-algorithms)
- [Sorting](#sorting)
- [Strings](#strings)
- [Online Challenges](#online-challenges)
- [Others](#others)

## Artificial Intelligence

- [Dbscan](https://allalgorithms.com/docs/dbscan)
- [Isodata](https://allalgorithms.com/docs/isodata)
- [Linear regression](https://allalgorithms.com/docs/linear-regression)
- [Logistic regression](https://allalgorithms.com/docs/logistic-regression)
- [Neutral style transfer](https://allalgorithms.com/docs/neutral-style-transfer)
- [Boolean satisfiability problem](https://allalgorithms.com/docs/sat)
- [Tsp](https://allalgorithms.com/docs/tsp)
- [A star](https://allalgorithms.com/docs/a-star)
- [Artificial neutral network](https://allalgorithms.com/docs/artificial-neutral-network)
- [Convolutional neutral network](https://allalgorithms.com/docs/convolutional-neutral-network)
- [Decision tree](https://allalgorithms.com/docs/decision-tree)
- [Factorization machines](https://allalgorithms.com/docs/factorization-machines)
- [Gaussian mixtrue model](https://allalgorithms.com/docs/gaussian-mixtrue-model)
- [Gradient boostring trees](https://allalgorithms.com/docs/gradient-boostring-trees)
- [Hierachical clustering](https://allalgorithms.com/docs/hierachical-clustering)
- [Image processing](https://allalgorithms.com/docs/image-processing)
- [K nearest neighbors](https://allalgorithms.com/docs/k-nearest-neighbors)
- [K means](https://allalgorithms.com/docs/k-means)
- [Minimax](https://allalgorithms.com/docs/minimax)
- [Native bayes](https://allalgorithms.com/docs/native-bayes)
- [Nearest sequence memory](https://allalgorithms.com/docs/nearest-sequence-memory)
- [Neutral network](https://allalgorithms.com/docs/neutral-network)
- [Perceptron](https://allalgorithms.com/docs/perceptron)
- [Principal component analysis](https://allalgorithms.com/docs/principal-component-analysis)
- [Q learning](https://allalgorithms.com/docs/q-learning)
- [Random forest](https://allalgorithms.com/docs/random-forest)
- [Restricted boltzman machine](https://allalgorithms.com/docs/restricted-boltzman-machine)

## Backtracking

- [Algorithm x](https://allalgorithms.com/docs/algorithm-x)
- [Crossword Puzzle](https://allalgorithms.com/docs/crossword-puzzle)
- [Knight tour](https://allalgorithms.com/docs/knight-tour)
- [M coloring problem](https://allalgorithms.com/docs/m-coloring-problem)
- [N queen](https://allalgorithms.com/docs/n-queen)
- [Number of ways in maze](https://allalgorithms.com/docs/number-of-ways-in-maze)
- [Partitions of set](https://allalgorithms.com/docs/partitions-of-set)
- [Permutation of strings](https://allalgorithms.com/docs/permutation-of-strings)
- [Powerset](https://allalgorithms.com/docs/powerset)
- [Rat in maze](https://allalgorithms.com/docs/rat-in-maze)
- [Subset sum](https://allalgorithms.com/docs/subset-sum)
- [Sudoku solve](https://allalgorithms.com/docs/sudoku-solve)

## Bit manipulation

- [Adding using bits](https://allalgorithms.com/docs/adding-using-bits)
- [Bit divisor](https://allalgorithms.com/docs/bit-divisor)
- [Byte swapper](https://allalgorithms.com/docs/byte-swapper)
- [Convert numbers to binary](https://allalgorithms.com/docs/convert-numbers-to-binary)
- [Count set bits](https://allalgorithms.com/docs/count-set-bits)
- [Flip bits](https://allalgorithms.com/docs/flip-bits)
- [Hamming distace](https://allalgorithms.com/docs/hamming-distace)
- [Invert bit](https://allalgorithms.com/docs/invert-bit)
- [Lonely integer](https://allalgorithms.com/docs/lonely-integer)
- [Magic number](https://allalgorithms.com/docs/magic-number)
- [Maximun xor value](https://allalgorithms.com/docs/maximun-xor-value)
- [Power of 2](https://allalgorithms.com/docs/power-of-2)
- [Subset generation](https://allalgorithms.com/docs/subset-generation)
- [Sum binary numbers](https://allalgorithms.com/docs/sum-binary-numbers)
- [Sum equals xor](https://allalgorithms.com/docs/sum-equals-xor)
- [Thrice unique number](https://allalgorithms.com/docs/thrice-unique-number)
- [Twice unique number](https://allalgorithms.com/docs/twice-unique-number)
- [Xor swap](https://allalgorithms.com/docs/xor-swap)

## Cellular automaton

- [Brians brain](https://allalgorithms.com/docs/brians-brain)
- [Conways game of life](https://allalgorithms.com/docs/conways-game-of-life)
- [Elementary cellular automata](https://allalgorithms.com/docs/elementary-cellular-automata)
- [Generic algorithm](https://allalgorithms.com/docs/generic-algorithm)
- [Langtons ant](https://allalgorithms.com/docs/langtons-ant)
- [Nobili cellular automata](https://allalgorithms.com/docs/nobili-cellular-automata)
- [Von neoumann cellular automata](https://allalgorithms.com/docs/von-neoumann-cellular-automata)

## Computational geometry

- [2d line intersection](https://allalgorithms.com/docs/2d-line-intersection)
- [2d separating axis test](https://allalgorithms.com/docs/2d-separating-axis-test)
- [Area of polygon](https://allalgorithms.com/docs/area-of-polygon)
- [Area of triangle](https://allalgorithms.com/docs/area-of-triangle)
- [Axis aligned bounding box collision](https://allalgorithms.com/docs/axis-aligned-bounding-box-collision)
- [Bresenham line](https://allalgorithms.com/docs/bresenham-line)
- [Chans algorithm](https://allalgorithms.com/docs/chans-algorithm)
- [Cohen-Sutherland lineclip](https://allalgorithms.com/docs/cohen-sutherland-lineclip)
- [Distance between points](https://allalgorithms.com/docs/distance-between-points)
- [Graham scan](https://allalgorithms.com/docs/graham-scan)
- [Halfplane intersection](https://allalgorithms.com/docs/halfplane-intersection)
- [Jarvis march](https://allalgorithms.com/docs/jarvis-march)
- [Quickhull](https://allalgorithms.com/docs/quickhull)
- [Sphere tetrahedron intersection](https://allalgorithms.com/docs/sphere-tetrahedron-intersection)
- [Sutherland-Hodgman clipping](https://allalgorithms.com/docs/sutherland-hodgman-clipping)

## Cryptography

- [Affine cipher](https://allalgorithms.com/docs/affine-cipher)
- [Atbash cipher](https://allalgorithms.com/docs/atbash-cipher)
- [Autokey cipher](https://allalgorithms.com/docs/autokey-cipher)
- [Baconian cipher](https://allalgorithms.com/docs/baconian-cipher)
- [Caesar cipher](https://allalgorithms.com/docs/caesar-cipher)
- [Colummnar cipher](https://allalgorithms.com/docs/colummnar-cipher)
- [Vigenere cipher](https://allalgorithms.com/docs/vigenere-cipher)

## Data structures

- [Bag](https://allalgorithms.com/docs/bag)
- [Hashes](https://allalgorithms.com/docs/hashes)
- [Linked list](https://allalgorithms.com/docs/linked-list)
- [List](https://allalgorithms.com/docs/list)
- [Queue](https://allalgorithms.com/docs/queue)
- [Stack](https://allalgorithms.com/docs/stack)
- [Tree](https://allalgorithms.com/docs/tree)

## Divide and conquer

- [Strassen matrix manipulation](https://allalgorithms.com/docs/strassen-matrix-manipulation)
- [Closest pair of point](https://allalgorithms.com/docs/closest-pair-of-point)
- [Inversion count](https://allalgorithms.com/docs/inversion-count)
- [Karatsuba multiplication](https://allalgorithms.com/docs/karatsuba-multiplication)
- [Maximum contiguous subsequence sum](https://allalgorithms.com/docs/maximum-contiguous-subsequence-sum)
- [Merge sort using divide and conquer](https://allalgorithms.com/docs/merge-sort-using-divide-and-conquer)
- [Quick sort using divide and conquer](https://allalgorithms.com/docs/quick-sort-using-divide-and-conquer)
- [Tournament method to find min max](https://allalgorithms.com/docs/tournament-method-to-find-min-max)
- [Warnock algorithm](https://allalgorithms.com/docs/warnock-algorithm)
- [X power y](https://allalgorithms.com/docs/x-power-y)

## Dynamic programming

- [Array median](https://allalgorithms.com/docs/array-median)
- [Optima binary search tree](https://allalgorithms.com/docs/optima-binary-search-tree)
- [Binomial coefficient](https://allalgorithms.com/docs/binomial-coefficient)

## Gaming theory

- [Nim next best move game](https://allalgorithms.com/docs/nim-next-best-move-game)
- [Nim win loss game](https://allalgorithms.com/docs/nim-win-loss-game)
- [Grundy numbers kayle game](https://allalgorithms.com/docs/grundy-numbers-kayle-game)

## Graphs

- [Bipartite check](https://allalgorithms.com/docs/bipartite-check)
- [Adjacency lists graphs representation](https://allalgorithms.com/docs/adjacency-lists-graphs-representation)

## Greedy algorithms

- [Activity selection](https://allalgorithms.com/docs/activity-selection)
- [Dijkstra shortest path](https://allalgorithms.com/docs/dijkstra-shortest-path)
- [Egyptian fraction](https://allalgorithms.com/docs/egyptian-fraction)

## Math

- [2 sum](https://allalgorithms.com/docs/2-sum)
- [Add polynomials](https://allalgorithms.com/docs/add-polynomials)
- [Amicable numbers](https://allalgorithms.com/docs/amicable-numbers)
- [Armstrong numbers](https://allalgorithms.com/docs/armstrong-numbers)
- [Automorphic numbers](https://allalgorithms.com/docs/automorphic-numbers)
- [Average stream numbers](https://allalgorithms.com/docs/average-stream-numbers)
- [Babylonian method](https://allalgorithms.com/docs/babylonian-method)
- [Binomial coefficient](https://allalgorithms.com/docs/binomial-coefficient)
- [Catalan number](https://allalgorithms.com/docs/catalan-number)
- [Check is square](https://allalgorithms.com/docs/check-is-square)
- [Convolution](https://allalgorithms.com/docs/convolution)
- [Coprime numbers](https://allalgorithms.com/docs/coprime-numbers)
- [Count digits](https://allalgorithms.com/docs/count-digits)
- [Count trailing zeroes](https://allalgorithms.com/docs/count-trailing-zeroes)
- [Decoding of string](https://allalgorithms.com/docs/decoding-of-string)
- [Delannoy number](https://allalgorithms.com/docs/delannoy-number)
- [Derangements](https://allalgorithms.com/docs/derangements)
- [Dfa division](https://allalgorithms.com/docs/dfa-division)
- [Diophantine](https://allalgorithms.com/docs/diophantine)
- [Divided differences](https://allalgorithms.com/docs/divided-differences)
- [Euler totient](https://allalgorithms.com/docs/euler-totient)
- [Exponentiation power](https://allalgorithms.com/docs/exponentiation-power)
- [Factorial](https://allalgorithms.com/docs/factorial)
- [Fast Fourier Transform](https://allalgorithms.com/docs/fast-fourier-transform)
- [Fast inverse square root](https://allalgorithms.com/docs/fast-inverse-square-root)

## Networking

- [Packet sniffer](https://allalgorithms.com/docs/packet-sniffer)
- [Determine endianess](https://allalgorithms.com/docs/determine-endianess)
- [Validate ip](https://allalgorithms.com/docs/validate-ip)

## Numerical analysis

- [Integral](https://allalgorithms.com/docs/integral)
- [Monte carlo](https://allalgorithms.com/docs/monte-carlo)
- [Runge kutt](https://allalgorithms.com/docs/runge-kutt)

## Randomized algorithms

- [Birthday paradox](https://allalgorithms.com/docs/birthday-paradox)
- [Karger minimum cut algorithm](https://allalgorithms.com/docs/karger-minimum-cut-algorithm)
- [Kth smallest element algorithm](https://allalgorithms.com/docs/kth-smallest-element-algorithm)
- [Random from stream](https://allalgorithms.com/docs/random-from-stream)
- [Random node linked list](https://allalgorithms.com/docs/random-node-linked-list)
- [Randomized quicksort](https://allalgorithms.com/docs/randomized-quicksort)
- [Reservoir sampling](https://allalgorithms.com/docs/reservoir-sampling)
- [Shuffle an array](https://allalgorithms.com/docs/shuffle-an-array)

## Searches

- [Binary search](https://allalgorithms.com/docs/binary-search)
- [Exponential search](https://allalgorithms.com/docs/exponential-search)
- [Fibonacci search](https://allalgorithms.com/docs/fibonacci-search)
- [Fuzzy search](https://allalgorithms.com/docs/fuzzy-search)
- [Interpolation search](https://allalgorithms.com/docs/interpolation-search)
- [Jump search](https://allalgorithms.com/docs/jump-search)
- [Linear search](https://allalgorithms.com/docs/linear-search)
- [Ternay search](https://allalgorithms.com/docs/ternay-search)

## Selections algorithms

- [Median of medians](https://allalgorithms.com/docs/median-of-medians)
- [Quick select](https://allalgorithms.com/docs/quick-select)

## Sorting

- [Bead sort](https://allalgorithms.com/docs/bead-sort)
- [Bogo sort](https://allalgorithms.com/docs/bogo-sort)
- [Bubble sort](https://allalgorithms.com/docs/bubble-sort)
- [Bucket sort](https://allalgorithms.com/docs/bucket-sort)
- [Circle sort](https://allalgorithms.com/docs/circle-sort)
- [Comb sort](https://allalgorithms.com/docs/comb-sort)
- [Counting sort](https://allalgorithms.com/docs/counting-sort)
- [Cycle sort](https://allalgorithms.com/docs/cycle-sort)
- [Flash sort](https://allalgorithms.com/docs/flash-sort)
- [Gnome sort](https://allalgorithms.com/docs/gnome-sort)
- [Heap sort](https://allalgorithms.com/docs/heap-sort)
- [Insertion sort](https://allalgorithms.com/docs/insertion-sort)
- [Intro sort](https://allalgorithms.com/docs/intro-sort)
- [Merge sort](https://allalgorithms.com/docs/merge-sort)
- [Pigeonhole sort](https://allalgorithms.com/docs/pigeonhole-sort)
- [Quick sort](https://allalgorithms.com/docs/quick-sort)
- [Radix sort](https://allalgorithms.com/docs/radix-sort)
- [Selection sort](https://allalgorithms.com/docs/selection-sort)
- [Shaker sort](https://allalgorithms.com/docs/shaker-sort)
- [Shell sort](https://allalgorithms.com/docs/shell-sort)
- [Sleep sort](https://allalgorithms.com/docs/sleep-sort)
- [Stooge sort](https://allalgorithms.com/docs/stooge-sort)
- [Topological sort](https://allalgorithms.com/docs/topological-sort)
- [Tree sort](https://allalgorithms.com/docs/tree-sort)

## Strings

- [Aho-Corasick algorithm](https://allalgorithms.com/docs/aho-corasick-algorithm)
- [Anagram search](https://allalgorithms.com/docs/anagram-search)
- [Arithmetic on large numbers](https://allalgorithms.com/docs/arithmetic-on-large-numbers)
- [Boyer-Moore algorithm](https://allalgorithms.com/docs/boyer-moore-algorithm)
- [Finite automata](https://allalgorithms.com/docs/finite-automata)
- [Kasai algorithm](https://allalgorithms.com/docs/kasai-algorithm)
- [Kmp algorithm](https://allalgorithms.com/docs/kmp-algorithm)
- [Levenshtein distance](https://allalgorithms.com/docs/levenshtein-distance)
- [Lipogram checker](https://allalgorithms.com/docs/lipogram-checker)

## Online challenges

- [Coderbyte](https://allalgorithms.com/docs/coderbyte)
- [Code chef](https://allalgorithms.com/docs/code-chef)
- [Code eval](https://allalgorithms.com/docs/code-eval)
- [Hackerearth](https://allalgorithms.com/docs/hackerearth)
- [Hackerrank](https://allalgorithms.com/docs/hackerrank)
- [Leetcode](https://allalgorithms.com/docs/leetcode)
- [Project euler](https://allalgorithms.com/docs/project-euler)
- [Rosalind](https://allalgorithms.com/docs/rosalind)
- [Spoj](https://allalgorithms.com/docs/spoj)
- [Top coder](https://allalgorithms.com/docs/top-coder)

## No category

- [Average](https://allalgorithms.com/docs/average)
- [Biggest of n numbers](https://allalgorithms.com/docs/biggest-of-n-numbers)
- [Biggest suffix](https://allalgorithms.com/docs/biggest-suffix)
- [Fifteen puzzle](https://allalgorithms.com/docs/fifteen-puzzle)
- [Jaccard similarity](https://allalgorithms.com/docs/jaccard-similarity)
- [Jose phus problem](https://allalgorithms.com/docs/jose-phus-problem)
- [Lapindrom checker](https://allalgorithms.com/docs/lapindrom-checker)
- [Leap year](https://allalgorithms.com/docs/leap-year)
- [Magic square](https://allalgorithms.com/docs/magic-square)
- [Majority element](https://allalgorithms.com/docs/majority-element)
- [Minimum subarray size with degree](https://allalgorithms.com/docs/minimum-subarray-size-with-degree)
- [No operator addition](https://allalgorithms.com/docs/no-operator-addition)
- [Paint fill](https://allalgorithms.com/docs/paint-fill)
- [Split list](https://allalgorithms.com/docs/split-list)
- [Tokenizer](https://allalgorithms.com/docs/tokenizer)
- [Unique number](https://allalgorithms.com/docs/unique-number)

## License

This work is released under MIT License.

To the extent possible under law, [Abraham Hernandez (@abranhe)](https://go.abranhe.com/github) has waived all copyright and related or neighboring rights to this work.