The Algorithms logo
The Algorithms
AboutDonate
Audio Filters
Backtracking

All Paths From Source To Target

Array Combination

Combination

Crossword Solver

Knights Tour

Maze Recursion

Parentheses Generator

Permutation

Subsequence Finder

Word Pattern Matcher

Word Search

Hamiltonian Cycle

Sudoku Solver

Word Ladder

Bit Manipulation

Bcd Conversion

Binary Palindrome Check

Boolean Algebra Gates

Clear Leftmost Set Bit

Count Leading Zeros

Count Set Bits

First Different Bit

Generate Sub Sets

Gray Code Conversion

Higher Lower Power Of Two

Highest Set Bit

Index of Rightmost Set Bit

Lowest Set Bit

Modulo Power Of Two

Next Higher Same Bit Count

Non Repeating Number Finder

Number Appearing Odd Times

Numbers Different Signs

One Bit Difference

Ones Complement

Single Bit Operations

Single Element

Swap Adjacent Bits

Twos Complement

Xs 3 Conversion

Generate Sub Sets

Ciphers

ADFGVX Cipher

AES Encryption

Affine Cipher

Atbash Cipher

Baconian Cipher

Blowfish

Columnar Transposition Cipher

Diffie Hellman

Hill Cipher

Mono Alphabetic

Playfair Cipher

Polybius

Product Cipher

Rail Fence Cipher

Simple Sub Cipher

Vigenere

XOR Cipher

A 5 Cipher

A 5 Key Stream Generator

Base LFSR

Composite LFSR

Compression
Conversions

Affine Converter

Any Base To Any Base

Any Base To Decimal

Binary to Decimal

Binary to Hexadecimal

Binary to Octal

Decimal To Any Base

Decimal to Binary

Decimal to Hexadecimal

Decimal to Octal

Endian Converter

Hex To Oct

Hexa Decimal To Binary

Hexadecimal to Decimal

IP Converter

I Pv 6 Converter

Integer To English

Integer To Roman

Morse Code Converter

Octal to Binary

Octal to Decimal

Octal to Hexadecimal

Phonetic Alphabet Converter

Rgb Hsv Conversion

Roman To Integer

Turkish To Latin Conversion

Unit Conversions

Units Converter

CPU Scheduling Algorithms
Data Structures

LWW Element Set

Disjoint Set Union

Dynamic Array

Bipartite Graph DFS

Boruvka Algorithm

Connected Component

Dijkstra Optimized Algorithm

Edmonds Blossom Algorithm

Johnsons Algorithm

Tarjans Algorithm

Generic Hash Map Using Array

Generic Hash Map Using Array List

Hash Map Cuckoo Hashing

Linear Probing Hash Map

Empty Heap Exception

Kth Element Finder

Merge K Sorted Arrays

Min Priority Queue

Circle Linked List

Count Singly Linked List Recursion

Create And Detect Loop

Cursor Linked List

Doubly Linked List

Merge K Sorted Linked List

Merge Sorted Array List

Merge Sorted Singly Linked List

Quick Sort Linked List

Rotate Singly Linked Lists

Search Singly Linked List Recursion

Singly Linked List

Sorted Linked List

Generic Array List Queue

Queue by Two Stacks

Sliding Window Maximum

Stack Array List

Stack with Singly Linked List

BST From Sorted Array

BST Recursive Generic

Boundary Traversal

Ceil In Binary Search Tree

Check Binary Tree Is Valid BST

Check If Binary Tree Balanced

Check Tree Is Symmetric

Create Binary Tree From Inorder Preorder

Inorder Traversal

Level Order Traversal

Post Order Traversal

Pre Order Traversal

Print Top Viewof Tree

Same Trees Check

Tree Random Node

Vertical Order Traversal

Zigzag Traversal

Nearest Right Key

Queue Using Two Stacks

Next Greater Element

Stack Using Two Queues

Devutils

Process Details

Large Tree Node

Simple Node

Simple Tree Node

Matrix Search Algorithm

Search Algorithm

Digital Image Processing
Divide and Conquer

Counting Inversions

Median Of Two Sorted Arrays

Skyline Algorithm

Strassen Matrix Multiplication

Dynamic Programming

Floyd Warshall

Assignment Using Bitmask

Brute Force Knapsack

Count Friends Pairing

Fibonacci Numbers

+12

More

Kadane Algorithm

Knapsack Memoization

Longest Alternating Subsequence

Longest Arithmetic Subsequence

Longest Common Subsequence

Longest Increasing Subsequence

Longest Palindromic Subsequence

Longest Palindromic Substring

Longest Valid Parentheses

Matrix Chain Multiplication

Matrix Chain Recursive Top Down Memoisation

Maximum Sum Of Non Adjacent Elements

Minimum Sum Partition

New Man Shanks Prime

Optimal Job Scheduling

Palindromic Partitioning

Partition Problem

Shortest Common Supersequence Length

Subset Sum Space Optimized

Unique Subsequences Count

Wildcard Matching

Fibonacci Numbers

+12

More

Longest Substring Without Repeating Characters

Longest Palindromic Substring

Fractals

Koch Snowflake

Mandelbrot

Geometry

Bresenham Line

Midpoint Circle

Midpoint Ellipse

Graphs

Bellman Ford

Dijkstra Algorithm

Kosaraju

Kruskal

Prim MST

Minimum Path Sum

Strongly Connected Component Optimized

Dijkstra

Page Rank

Breadth First Search

Depth First Search

Greedy Algorithms

Bandwidth Allocation

Binary Addition

Digit Separation

Egyptian Fraction

Job Sequencing

Merge Intervals

Minimizing Lateness

Optimal File Merging

Stock Profit Calculator

Greedy Methods

Fractional Knapsack

Minimum Waiting Time

Hashing
Io

Buffered Reader

Lineclipping
Math

Binary Exponentiation

ADT Fraction

Absolute Max

Absolute Min

Absolute Value

Aliquot Sum

Amicable Number

Armstrong Number

Auto Correlation

Automorphic Number

Average

Binary Pow

Binomial Coefficient

Ceil

Chinese Remainder Theorem

Circular Convolution FFT

Collatz Conjecture

Combinations

Convolution

Convolution FFT

Cross Correlation

Determinant Of Matrix

Digital Root

Distance Formula

Dudeney Number

Euler Method

Eulers Function

FFT Bluestein

Factorial Recursion

Fast Exponentiation

Fast Inverse Sqrt

Fibonacci Java Streams

Fibonacci Loop

Fibonacci Number Check

Fibonacci Number Golden Ration

Find Kth Number

Find Max

Find Max Recursion

Find Min

Find Min Recursion

Frizzy Number

GCD Recursion

Gaussian

Generic Root

Harshad Number

Herons Formula

Josephus Problem

Juggler Sequence

Kaprekar Numbers

Karatsuba Multiplication

Keith Number

Krishnamurthy Number

Least Common Multiple

Leonardo Number

Linear Diophantine Equations Solver

Liouville Lambda Function

Long Division

Lucas Series

Magic Square

Matrix Rank

Matrix Util

Max Value

Median

Miller Rabin Primality Check

Min Value

Mobius Function

Non Repeating Element

Number of Digits

Palindrome Number

Parse Integer

Perfect Cube

Perfect Number

Perfect Square

Perimeter

Pi Nilakantha

Pollard Rho

Power Of Two Or Not

Power Using Recursion

Prime Factorization

Pythagorean Triple

Quadratic Equation Solver

Reverse Number

Roman Numeral Util

Second Min Max

Sieve of Eratosthenes

Simpson Integration

Square Free Integer

Square Root With Babylonian Method

Square Root With Newton Raphson Method

Standard Deviation

Standard Score

Strobogrammatic Number

Sum of Arithmetic Series

Sum of Digits

Sum Of Odd Numbers

Sum Without Arithmetic Operators

Trinomial Triangle

Twin Prime

Uniform Numbers

Vampire Number

Vector Cross Product

Volume

Matrix

Pascal Triangle

Inverse of Matrix

Networking Flow

Ford Fulkerson

Operations on Datastructures
Others

Lfu Cache

Lru Cache

Graham Scan

Activity Selection

Color Contrast Ratio

Map Reduce

Matrix Transpose

Median Of Matrix

Median Of Running Array

Median Of Running Array Byte

Median Of Running Array Double

Median Of Running Array Float

Median Of Running Array Integer

Median Of Running Array Long

Mirror Of Matrix

Palindrome Prime

Palindrome Singly Linked List

Range In Sorted Array

Shuffle Array

Sparsity

Three Sum Problem

Two Sum Problem

Word Boggle

Bankers Algorithm

Brian Kernighan Algorithm

CRC Algorithm

Floyd Triangle

Gauss Legendre

Happy Numbers Seq

Implementing Auto Completing Features Using Trie

Insert Delete In Array

Krishnamurthy

Line Sweep

Linear Congruential Generator

Lowest Base Palindrome

Maximum Sliding Window

Maximum Sum Of Distinct Subarrays With Length K

Memory Management Algorithms

Mini Max Algorithm

Password Gen

Perlin Noise

Print A Matrix In Spiral Order

Remove Duplicate From String

Reverse Stack Using Recursion

Rotate Matrix By 90 Degrees

Skyline Problem

Tower of Hanoi

Two Pointers

Verhoeff

Recursion

Fibonacci Series

Recursive

Flood Fill

Scheduling

Aging Scheduling

EDF Scheduling

Fair Share Scheduling

Gang Scheduling

Highest Response Ratio Next Scheduling

Job Scheduling With Deadline

Lottery Scheduling

MLFQ Scheduler

Multi Agent Scheduling

Non Preemptive Priority Scheduling

Preemptive Priority Scheduling

Proportional Fair Scheduling

RR Scheduling

Random Scheduling

SJF Scheduling

SRTF Scheduling

Self Adjusting Scheduling

Slack Time Scheduling

Circular Look Scheduling

Circular Scan Scheduling

Searches

BM 25 Inverted Index

Binary Search

+15

More

Binary Search 2d Array

Exponental Search

Fibonacci Search

How Many Times Rotated

Interpolation Search

Iterative Binary Search

Iterative Ternary Search

Jump Search

KMP Search

Linear Search

+14

More

Linear Search Thread

Lower Bound

Monte Carlo Tree Search

Order Agnostic Binary Search

Perfect Binary Search

Quick Select

Rabin Karp Algorithm

Random Search

Recursive Binary Search

Row Column Wise Sorted 2d Array Binary Search

Saddleback Search

Search In A Row And Col Wise Sorted Matrix

Sort Order Agnostic Binary Search

Square Root Binary Search

Ternary Search

Union Find

Upper Bound

Sliding Window

Longest Subarray With Sum Less Or Equal To K

Max Sum K Size Subarray

Min Sum K Size Subarray

Sorts

Adaptive Merge Sort

Bead Sort

Binary Insertion Sort

Bitonic Sort

Bogo Sort

Bubble Sort

+19

More

Bubble Sort Recursive

Bucket Sort

Circle Sort

Cocktail Shaker Sort

Comb Sort

Counting Sort

Cycle Sort

Dual Pivot Quick Sort

Dutch National Flag Sort

Exchange Sort

Flash Sort

Gnome Sort

Heap Sort

+15

More

Insertion Sort

+18

More

Introspective Sort

Link List Sort

Merge Sort No Extra Space

Merge Sort Recursive

Odd Even Sort

Pancake Sort

Patience Sort

Pigeonhole Sort

Quick Sort

+19

More

Radix Sort

Selection Sort

+14

More

Selection Sort Recursive

Shell Sort

+10

More

Simple Sort

Slowsort

Sort Algorithm

Sort Utils

Sort Utils Random Generator

Spread Sort

Stalin Sort

Stooge Sort

Strand Sort

Swap Sort

Tim Sort

Topological Sort

Tree Sort

Wave Sort

Wiggle Sort

Stacks

Balanced Brackets

Celebrity Finder

Decimal To Any Using Stack

Duplicate Brackets

Greatest Element Constant Time

Infix To Postfix

Infix To Prefix

Largest Rectangle

Maximum Minimum Window

Min Stack Using Single Stack

Min Stack Using Two Stacks

Next Smaller Element

Palindrome With Stack

Postfix Evaluator

Postfix To Infix

Prefix Evaluator

Prefix To Infix

Smallest Element Constant Time

Sort Stack

Stack Postfix Notation

Strings

Hamming Distance

Levenshtein Distance

Boyer Moore

Hamming Distance

Aho Corasick

Alphabetical

Characters Same

Check Anagram

Check Vowels

Count Char

Count Words

Hamming Distance

Horspool Search

Isomorphic

Letter Combinations Of Phone Number

Longest Common Prefix

Longest Non Repetitive Substring

Manacher

Palindrome

Permute String

Rabin Karp

Return Subsequence

Reverse String

Reverse String Recursive

Reverse Words In String

String Compression

String Match Finite Automata

Valid Parentheses

Zig Zag Pattern