The Algorithms logo
The Algorithms
AboutDonate
undefined

Fast Search

Ciphers

Vigenere

Blowfish

Conversions

Rgb Hsv Conversion

Crypto

ISO 10125-2 Padding

ISO 7816-4 Padding

X9.32 Padding

TBC Padding

PKCS7 Padding

Data Compression

Huffman Compressor

Shannon-Fano Compressor

Data Structures

Segment Tree Multiplication

Array-based Stack

List-based Stack

Queue-based Stack

Array-based Queue

List-based Queue

Stack-based Queue

Singly Linked List

Doubly Linked List

Directed Weighted Graph Via Adjacency Matrix

Inverted index

Unrolled linked list

Least Frequently Used (LFU) Cache

Least Recently Used (LRU) Cache

Discrete Mathematics
Divide and Conquer
Dynamic Programming
Encoders
Fractals

Mandelbrot

Koch Snowflake

Graphs

Prim's Algorithm (Adjacency Matrix)

Breadth First Search

Depth First Search

Dijkstra Shortest Path

Kosaraju

Backtracking

Hashing
Knapsack

Naive solver

Dynamic Programming solver

Branch and bound solver

IHeuristicSolver

Linear Algebra
Math

Chinese Remainder Theorem

Extended Euclidean Algorithm

Aliquot Sum

Modular Exponentiation

Maclaurin Series

Binomial Coefficient

Perfect Number

Perfect Square

Euler Method

Miller Rabin Primality Check

Automorphic Number

Josephus Problem

Euler's Totient

Sieve of Eratosthenes

Modular Arithmetic

Modular Multiplicative Inverse

Numeric

Amicable Numbers Checker

Thin Singular Vector Decomposition

Trial division Factorization

Gauss-Jordan Elimination

Keith Number Checker

Pseudo-Inverse

Narcissistic Number Checker

Classic Runge-Kutta Method

KrishnamurthyNumberChecker

Newton's Square Root Calculation

Others

Fermat Prime Checker

Int2Binary

GeoLocation

Pareto Optimization

Gauss Optimization

Decisions Convolutions

Welford's Variance

Julian Easter

Pollard's Rho

Problems
Recursive

Flood Fill

Searches

Binary Search

+15

More

Fibonacci Search

Interpolation Search

Jump Search

Linear Search

+14

More

Recursive Binary Search

Sequences

A000002 Kolakoski

A000004 Zero

A000005 Count of Divisors

A000008 Make Change

A000012 All Ones

A000027 Natural

A000032 Lucas Numbers

A000040 Primes

A000045 Fibonacci

A000079 Powers of 2

A000108 Catalan

A000120 1's Counting

A000124 Central Polygonal Numbers

A000125 Cake Numbers

A000142 Factorial

A000213 Tribonacci Numbers

A000215 Fermat Numbers

A000288 Tetranacci Numbers

A000290 Squares

A000292 Tetrahedral numbers

A000578 Cubes

A000720 PrimePi

A001146 Number of Boolean Functions

A001462 Golomb's

A001478 Negative Integers

A002110 Primorial Numbers

A002717 Matchstick Triangle Arrangement

A005132 Recaman's

A006577 Number of '3n+1' steps to reach 1

A006862 Euclid Numbers

A006879 Number of Primes by Number of Digits

A006880 Number of Primes by Powers of 10

A007318 Binomial

A007395 All Twos

A010051 Binary Prime Constant

A010701 All Threes

A011557 Powers of 10

A057588 Kummer Numbers

A019434 Fermat Primes

A181391 Van Eck's

Shufflers

Fisher-Yates Shuffler

Sorts

Binary Insertion Sort

Bogo Sort

Bubble Sort

+19

More

Cocktail Sort

Comb Sort

Cycle Sort

Exchange Sort

Heap Sort

+15

More

Insertion Sort

+18

More

Pancake Sort

Quick Sort

+19

More

Median of three pivot

Middle point pivot

Random pivot

Selection Sort

+14

More

Shell Sort

Tim Sort

Counting Sort

Bucket Sort

Radix Sort

Msd Radix Sort

Knuth–Morris–Pratt Search

Stable Marriage
Strings

Burrows Wheeler Transform

Boyer Moore Search

Hamming Distance

Jaro Similarity

Jaro Winkler Distance

Longest Consecutive Character

Naive String Search

Rabin Karp

Boyer Moore

Palindrome Checker

Get all permutations of a string

Z-block substring search

Levenshtein Distance

Tree

Breadth First Tree Traversal