TheAlgorithms All Algorithms implemented in Python. https://github.com/TheAlgorithms/Python
TheAlgorithms All Algorithms implemented in Python. https://github.com/TheAlgorithms/Python

The Algorithms - Python
All algorithms implemented in Python (for education)
These implementations are for learning purposes only. Therefore they may be less efficient than the implementations in the Python standard library.
Contribution Guidelines
Read our Contribution Guidelines before you contribute.
Community Channel
We're on Gitter! Please join us.
List of Algorithms
Arithmetic Analysis
- Bisection
- Gaussian Elimination
- In Static Equilibrium
- Intersection
- Lu Decomposition
- Newton Forward Interpolation
- Newton Method
- Newton Raphson
- Secant Method
Backtracking
- All Combinations
- All Permutations
- All Subsequences
- Coloring
- Hamiltonian Cycle
- Knight Tour
- Minimax
- N Queens
- N Queens Math
- Rat In Maze
- Sudoku
- Sum Of Subsets
Bit Manipulation
- Binary And Operator
- Binary Count Setbits
- Binary Count Trailing Zeros
- Binary Or Operator
- Binary Shifts
- Binary Twos Complement
- Binary Xor Operator
- Count Number Of One Bits
- Reverse Bits
- Single Bit Manipulation Operations
Blockchain
Boolean Algebra
Cellular Automata
Ciphers
- A1Z26
- Affine Cipher
- Atbash
- Base16
- Base32
- Base64 Encoding
- Base85
- Beaufort Cipher
- Brute Force Caesar Cipher
- Caesar Cipher
- Cryptomath Module
- Decrypt Caesar With Chi Squared
- Deterministic Miller Rabin
- Diffie
- Diffie Hellman
- Elgamal Key Generator
- Enigma Machine2
- Hill Cipher
- Mixed Keyword Cypher
- Mono Alphabetic Ciphers
- Morse Code Implementation
- Onepad Cipher
- Playfair Cipher
- Porta Cipher
- Rabin Miller
- Rail Fence Cipher
- Rot13
- Rsa Cipher
- Rsa Factorization
- Rsa Key Generator
- Shuffled Shift Cipher
- Simple Keyword Cypher
- Simple Substitution Cipher
- Trafid Cipher
- Transposition Cipher
- Transposition Cipher Encrypt Decrypt File
- Vigenere Cipher
- Xor Cipher
Compression
Computer Vision
Conversions
- Binary To Decimal
- Binary To Octal
- Decimal To Any
- Decimal To Binary
- Decimal To Binary Recursion
- Decimal To Hexadecimal
- Decimal To Octal
- Hex To Bin
- Hexadecimal To Decimal
- Molecular Chemistry
- Octal To Decimal
- Prefix Conversions
- Rgb Hsv Conversion
- Roman Numerals
- Temperature Conversions
- Weight Conversion
Data Structures
- Binary Tree
- Avl Tree
- Basic Binary Tree
- Binary Search Tree
- Binary Search Tree Recursive
- Binary Tree Mirror
- Binary Tree Traversals
- Fenwick Tree
- Lazy Segment Tree
- Lowest Common Ancestor
- Merge Two Binary Trees
- Non Recursive Segment Tree
- Number Of Possible Binary Trees
- Red Black Tree
- Segment Tree
- Segment Tree Other
- Treap
- Wavelet Tree
- Disjoint Set
- Alternate Disjoint Set
- Disjoint Set
- Hashing
- Double Hash
- Hash Table
- Hash Table With Linked List
- Number Theory
- Prime Numbers
- Quadratic Probing
- Heap
- Binomial Heap
- Heap
- Heap Generic
- Max Heap
- Min Heap
- Randomized Heap
- Skew Heap
- Linked List
- Circular Linked List
- Deque Doubly
- Doubly Linked List
- Doubly Linked List Two
- From Sequence
- Has Loop
- Is Palindrome
- Merge Two Lists
- Middle Element Of Linked List
- Print Reverse
- Singly Linked List
- Skip List
- Swap Nodes
- Queue
- Circular Queue
- Double Ended Queue
- Linked Queue
- Priority Queue Using List
- Queue On List
- Queue On Pseudo Stack
- Stacks
- Balanced Parentheses
- Dijkstras Two Stack Algorithm
- Evaluate Postfix Notations
- Infix To Postfix Conversion
- Infix To Prefix Conversion
- Linked Stack
- Next Greater Element
- Postfix Evaluation
- Prefix Evaluation
- Stack
- Stack Using Dll
- Stock Span Problem
- Trie
- Trie
Digital Image Processing
- Change Brightness
- Change Contrast
- Convert To Negative
- Dithering
- Burkes
- Edge Detection
- Canny
- Filters
- Bilateral Filter
- Convolve
- Gaussian Filter
- Median Filter
- Sobel Filter
- Histogram Equalization
- Histogram Stretch
- Index Calculation
- Resize
- Resize
- Rotation
- Rotation
- Sepia
- Test Digital Image Processing
Divide And Conquer
- Closest Pair Of Points
- Convex Hull
- Heaps Algorithm
- Heaps Algorithm Iterative
- Inversions
- Kth Order Statistic
- Max Difference Pair
- Max Subarray Sum
- Mergesort
- Peak
- Power
- Strassen Matrix Multiplication
Dynamic Programming
- Abbreviation
- Bitmask
- Catalan Numbers
- Climbing Stairs
- Edit Distance
- Factorial
- Fast Fibonacci
- Fibonacci
- Floyd Warshall
- Fractional Knapsack
- Fractional Knapsack 2
- Integer Partition
- Iterating Through Submasks
- Knapsack
- Longest Common Subsequence
- Longest Increasing Subsequence
- Longest Increasing Subsequence O(Nlogn)
- Longest Sub Array
- Matrix Chain Order
- Max Non Adjacent Sum
- Max Sub Array
- Max Sum Contiguous Subsequence
- Minimum Coin Change
- Minimum Cost Path
- Minimum Partition
- Minimum Steps To One
- Optimal Binary Search Tree
- Rod Cutting
- Subset Generation
- Sum Of Subset
Electronics
File Transfer
Fractals
Fuzzy Logic
Genetic Algorithm
Geodesy
Graphics
Graphs
- A Star
- Articulation Points
- Basic Graphs
- Bellman Ford
- Bfs Shortest Path
- Bfs Zero One Shortest Path
- Bidirectional A Star
- Bidirectional Breadth First Search
- Breadth First Search
- Breadth First Search 2
- Breadth First Search Shortest Path
- Check Bipartite Graph Bfs
- Check Bipartite Graph Dfs
- Connected Components
- Depth First Search
- Depth First Search 2
- Dijkstra
- Dijkstra 2
- Dijkstra Algorithm
- Dinic
- Directed And Undirected (Weighted) Graph
- Edmonds Karp Multiple Source And Sink
- Eulerian Path And Circuit For Undirected Graph
- Even Tree
- Finding Bridges
- Frequent Pattern Graph Miner
- G Topological Sort
- Gale Shapley Bigraph
- Graph List
- Graph Matrix
- Graphs Floyd Warshall
- Greedy Best First
- Kahns Algorithm Long
- Kahns Algorithm Topo
- Karger
- Markov Chain
- Minimum Spanning Tree Boruvka
- Minimum Spanning Tree Kruskal
- Minimum Spanning Tree Kruskal2
- Minimum Spanning Tree Prims
- Minimum Spanning Tree Prims2
- Multi Heuristic Astar
- Page Rank
- Prim
- Scc Kosaraju
- Strongly Connected Components
- Tarjans Scc
- Tests
- Test Min Spanning Tree Kruskal
- Test Min Spanning Tree Prim
Hashes
Knapsack
Linear Algebra
- Src
- Conjugate Gradient
- Lib
- Polynom For Points
- Power Iteration
- Rayleigh Quotient
- Test Linear Algebra
- Transformations 2D
Machine Learning
- Astar
- Data Transformations
- Decision Tree
- Forecasting
- Run
- Gaussian Naive Bayes
- Gradient Boosting Regressor
- Gradient Descent
- K Means Clust
- K Nearest Neighbours
- Knn Sklearn
- Linear Discriminant Analysis
- Linear Regression
- Logistic Regression
- Lstm
- Lstm Prediction
- Multilayer Perceptron Classifier
- Polymonial Regression
- Random Forest Classifier
- Random Forest Regressor
- Scoring Functions
- Sequential Minimum Optimization
- Similarity Search
- Support Vector Machines
- Word Frequency Functions
Maths
- 3N Plus 1
- Abs
- Abs Max
- Abs Min
- Add
- Aliquot Sum
- Allocation Number
- Area
- Area Under Curve
- Armstrong Numbers
- Average Mean
- Average Median
- Average Mode
- Bailey Borwein Plouffe
- Basic Maths
- Binary Exp Mod
- Binary Exponentiation
- Binary Exponentiation 2
- Binary Exponentiation 3
- Binomial Coefficient
- Binomial Distribution
- Bisection
- Ceil
- Chudnovsky Algorithm
- Collatz Sequence
- Combinations
- Decimal Isolate
- Entropy
- Euclidean Distance
- Euclidean Gcd
- Euler Method
- Eulers Totient
- Extended Euclidean Algorithm
- Factorial Iterative
- Factorial Python
- Factorial Recursive
- Factors
- Fermat Little Theorem
- Fibonacci
- Fibonacci Sequence Recursion
- Find Max
- Find Max Recursion
- Find Min
- Find Min Recursion
- Floor
- Gamma
- Gaussian
- Greatest Common Divisor
- Greedy Coin Change
- Hardy Ramanujanalgo
- Integration By Simpson Approx
- Is Square Free
- Jaccard Similarity
- Kadanes
- Karatsuba
- Krishnamurthy Number
- Kth Lexicographic Permutation
- Largest Of Very Large Numbers
- Largest Subarray Sum
- Least Common Multiple
- Line Length
- Lucas Lehmer Primality Test
- Lucas Series
- Matrix Exponentiation
- Max Sum Sliding Window
- Median Of Two Arrays
- Miller Rabin
- Mobius Function
- Modular Exponential
- Monte Carlo
- Monte Carlo Dice
- Newton Raphson
- Number Of Digits
- Numerical Integration
- Perfect Cube
- Perfect Number
- Perfect Square
- Pi Monte Carlo Estimation
- Polynomial Evaluation
- Power Using Recursion
- Prime Check
- Prime Factors
- Prime Numbers
- Prime Sieve Eratosthenes
- Primelib
- Pythagoras
- Qr Decomposition
- Quadratic Equations Complex Numbers
- Radians
- Radix2 Fft
- Relu
- Runge Kutta
- Segmented Sieve
- Series
- Arithmetic Mean
- Geometric Mean
- Geometric Series
- Harmonic Series
- P Series
- Sieve Of Eratosthenes
- Sigmoid
- Simpson Rule
- Softmax
- Square Root
- Sum Of Arithmetic Series
- Sum Of Digits
- Sum Of Geometric Progression
- Test Prime Check
- Trapezoidal Rule
- Triplet Sum
- Two Pointer
- Two Sum
- Ugly Numbers
- Volume
- Zellers Congruence
Matrix
- Count Islands In Matrix
- Inverse Of Matrix
- Matrix Class
- Matrix Operation
- Nth Fibonacci Using Matrix Exponentiation
- Rotate Matrix
- Searching In Sorted Matrix
- Sherman Morrison
- Spiral Print
- Tests
- Test Matrix Operation
Networking Flow
Neural Network
Other
- Activity Selection
- Davis–Putnam–Logemann–Loveland
- Dijkstra Bankers Algorithm
- Doomsday
- Fischer Yates Shuffle
- Gauss Easter
- Graham Scan
- Greedy
- Least Recently Used
- Lfu Cache
- Linear Congruential Generator
- Lru Cache
- Magicdiamondpattern
- Nested Brackets
- Password Generator
- Scoring Algorithm
- Sdes
- Tower Of Hanoi
Physics
Quantum
Scheduling
Searches
- Binary Search
- Binary Tree Traversal
- Double Linear Search
- Double Linear Search Recursion
- Fibonacci Search
- Hill Climbing
- Interpolation Search
- Jump Search
- Linear Search
- Quick Select
- Sentinel Linear Search
- Simple Binary Search
- Simulated Annealing
- Tabu Search
- Ternary Search
Sorts
- Bead Sort
- Bitonic Sort
- Bogo Sort
- Bubble Sort
- Bucket Sort
- Cocktail Shaker Sort
- Comb Sort
- Counting Sort
- Cycle Sort
- Double Sort
- External Sort
- Gnome Sort
- Heap Sort
- Insertion Sort
- Intro Sort
- Iterative Merge Sort
- Merge Insertion Sort
- Merge Sort
- Msd Radix Sort
- Natural Sort
- Odd Even Sort
- Odd Even Transposition Parallel
- Odd Even Transposition Single Threaded
- Pancake Sort
- Patience Sort
- Pigeon Sort
- Pigeonhole Sort
- Quick Sort
- Quick Sort 3 Partition
- Radix Sort
- Random Normal Distribution Quicksort
- Random Pivot Quick Sort
- Recursive Bubble Sort
- Recursive Insertion Sort
- Recursive Mergesort Array
- Recursive Quick Sort
- Selection Sort
- Shell Sort
- Slowsort
- Stooge Sort
- Strand Sort
- Tim Sort
- Topological Sort
- Tree Sort
- Unknown Sort
- Wiggle Sort
Strings
- Aho Corasick
- Anagrams
- Autocomplete Using Trie
- Boyer Moore Search
- Can String Be Rearranged As Palindrome
- Capitalize
- Check Anagrams
- Check Pangram
- Detecting English Programmatically
- Frequency Finder
- Is Palindrome
- Jaro Winkler
- Knuth Morris Pratt
- Levenshtein Distance
- Lower
- Manacher
- Min Cost String Conversion
- Naive String Search
- Palindrome
- Prefix Function
- Rabin Karp
- Remove Duplicate
- Reverse Letters
- Reverse Words
- Split
- Swap Case
- Upper
- Word Occurrence
- Word Patterns
- Z Function
Web Programming
- Co2 Emission
- Covid Stats Via Xpath
- Crawl Google Results
- Crawl Google Scholar Citation
- Currency Converter
- Current Stock Price
- Current Weather
- Daily Horoscope
- Emails From Url
- Fetch Bbc News
- Fetch Github Info
- Fetch Jobs
- Get Imdb Top 250 Movies Csv
- Get Imdbtop
- Instagram Crawler
- Instagram Pic
- Instagram Video
- Recaptcha Verification
- Slack Message
- Test Fetch Github Info
- World Covid19 Stats