## Contents
You can find the All â–²lgorithms categories at [algorithms.com/categories](https://algorithms.com/categories)
- [Artificial intelligence](#artificial-intelligence)
- [Backtracking](#backtracking)
- [Bit manipulation](#bit-manipulation)
- [Cellular automaton](#cellular-automaton)
- [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)
- [Online challenges](#online-challenges)
- [Randomized algorithms](#randomized-algorithms)
- [Serches](#serches)
- [Selections](#selections)
- [Sorting](#sorting)
- [Strings](#strings)
- [No category](#no-category)
## Artificial intelligence
- [Togasat](artificial-intelligence/togasat.cpp)
## Backtracking
- [Crossword puzzle](backtracking/crossword_puzzle.cpp)
## Data structures
- [Pairs with difference k](data-structures/hashmaps/pairs_with_difference_k.cpp)
- [Largest rectangle area](data-structures/largest_rectangle_area.cpp)
- [Linkedlist adt](data-structures/linkedlist/linkedlist_adt.cpp)
- [Circular buffer](data-structures/queue/circular_buffer.cpp)
- [Queue](data-structures/queue/queue.cpp)
- [Stack](data-structures/stack/stack.cpp)
## Dynamic programming
- [Coin change](dynamic-programming/coin_change.cpp)
- [Edit distance](dynamic-programming/edit_distance.cpp)
- [Fibonacci number](dynamic-programming/fibonacci_number.cpp)
- [Knapsack](dynamic-programming/knapsack.cpp)
- [Lcs](dynamic-programming/lcs.cpp)
- [Lis](dynamic-programming/lis.cpp)
- [Longest path](dynamic-programming/longest_path.cpp)
- [Matrix chain multiplication](dynamic-programming/matrix_chain_multiplication.cpp)
- [Rod cutting](dynamic-programming/rod_cutting.cpp)
- [Ways to cover](dynamic-programming/ways_to_cover.cpp)
## Graphs
- [Bellman ford](graphs/bellman_ford.cpp)
- [Bfs](graphs/bfs.cpp)
- [Count diconnected components](graphs/count_diconnected_components.cpp)
- [Dfs](graphs/dfs.cpp)
- [Dijkstra](graphs/dijkstra.cpp)
- [Floyd warshall](graphs/floyd_warshall.cpp)
- [Prims adjacency list](graphs/prims_adjacency_list.cpp)
- [Toposort](graphs/toposort.cpp)
## Math
- [All factors of a numbe r](math/all_factors_of_a_numbe_r.cpp)
- [Armstrong number](math/armstrong_number.cpp)
- [Bshuffll](math/bshuffll.cpp)
- [Chefres](math/chefres.cpp)
- [Collatz](math/collatz.cpp)
- [Euclids gcd](math/euclids_gcd.cpp)
- [Eulers totient](math/eulers_totient.cpp)
- [Factorial loop](math/factorial_loop.cpp)
- [Factorial](math/factorial.cpp)
- [Gcd of array](math/gcd_of_array.cpp)
- [Hoax no](math/hoax_no.cpp)
- [Kadence](math/kadence.cpp)
- [Lcm of array](math/lcm_of_array.cpp)
- [Lucky numbers](math/lucky_numbers.cpp)
- [Magic square](math/magic_square.cpp)
- [Modular exponentiation](math/modular_exponentiation.cpp)
- [Nth fibonacci using goldenratio](math/nth_fibonacci_using_goldenratio.cpp)
- [Pascals triangle](math/pascals_triangle.cpp)
- [Sieve of eratosthenes](math/sieve_of_eratosthenes.cpp)
- [Slicker algorithm](math/slicker_algorithm.cpp)
- [Sphenic n o](math/sphenic_n_o.cpp)
- [T ermo conv](math/t_ermo_conv.cpp)
## Searches
- [Binary search](searches/binary_search.cpp)
- [Exponential search](searches/exponential_search.cpp)
- [Jump search](searches/jump_search.cpp)
- [Linear search](searches/linear_search.cpp)
- [Ternary search](searches/ternary_search.cpp)
## Sorting
- [Bogo sort](sorting/bogo_sort.cpp)
- [Bubble sort](sorting/bubble_sort.cpp)
- [Counting sort](sorting/counting_sort.cpp)
- [Gnome sort](sorting/gnome_sort.cpp)
- [Heap sort without vectors](sorting/heap_sort_without_vectors.cpp)
- [Heap sort](sorting/heap_sort.cpp)
- [Insertion sort](sorting/insertion_sort.cpp)
- [Merge sort](sorting/merge_sort.cpp)
- [Quick sort](sorting/quick_sort.cpp)
- [Radix sort](sorting/radix_sort.cpp)
- [Rank sort](sorting/rank_sort.cpp)
- [Selection sort](sorting/selection_sort.cpp)
- [Shaker sort](sorting/shaker_sort.cpp)
- [Shell sort](sorting/shell_sort.cpp)
- [Sort vector](sorting/sort_vector.cpp)
- [Stooge sort](sorting/stooge_sort.cpp)
- [Tree sort](sorting/tree_sort.cpp)
## Strings
- [Anagram check](strings/anagram_check.cpp)
- [Lexicographic ranking](strings/lexicographic_ranking.cpp)
- [Longest palindrome subset](strings/longest_palindrome_subset.cpp)
- [Naive search](strings/naive_search.cpp)
- [Permutations of string](strings/permutations_of_string.cpp)
- [Print duplicate string](strings/print_duplicate_string.cpp)
- [Rabin carp](strings/rabin_carp.cpp)
- [Rabin karp](strings/rabin_karp.cpp)
- [Remove adjacent duplicates](strings/remove_adjacent_duplicates.cpp)
- [Remove duplicates](strings/remove_duplicates.cpp)
- [Reverse string](strings/reverse_string.cpp)
- [Z algorithm](strings/z_algorithm.cpp)
## Maintainers
|[![1][1-avatar]][1]|[![2][2-avatar]][2]|
| :-: | :-: |
| [Carlos Abraham][1] | [Christian Bender][2] |
## License
This work is released under [MIT License][MIT]
[![MIT IMG][MIT-logo]][MIT]
To the extent possible under law, [Carlos Abraham](https://go.abranhe.com/github) has waived all copyright and related or neighboring rights to this work.
[MIT]: https://github.com/abranhe/algorithms/blob/master/license
[MIT-logo]: https://cdn.abranhe.com/projects/algorithms/mit-license.png
[1]: https://github.com/abranhe
[1-avatar]: https://avatars3.githubusercontent.com/u/21347264?s=50
[2]: https://github.com/christianbender
[2-avatar]: https://avatars3.githubusercontent.com/u/23243382?s=50