GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Morin3/Algorithms-Collection-Python: Collection of Algorithms implemented in Python

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

300 Commits
300 Commits

Folders and files

NameName
Last commit message
Last commit date
Algorithm_tests
Algorithm_tests
 
 
Algorithms
Algorithms
 
 
.gitignore
.gitignore
 
 
.travis.yml
.travis.yml
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
requirements.txt
requirements.txt
 
 
setup.py
setup.py
 
 

Repository files navigation

Build Status License: MIT codecov

Algorithms Collection Python

Whenever I face an interesting problem I document the algorithm that I learned to solve it. The goals of this repository is to have clean, efficient and most importantly correct code.

āœ…: If the algorithm is tested
šŸ”ŗ: If the algorithm is untested

Dynamic Programming

  • āœ… Knapsack 0/1 - O(nC) Bottom-Up implementation (Loops)
  • āœ… šŸŽ„Sequence Alignment - O(nm)
  • āœ… šŸŽ„Weighted Interval Scheduling - O(nlog(n))

Graph theory

  • āœ… Kahns Topological Sort - O(n + m)
  • āœ… Bellman-Ford Shortest Path - O(mn)
  • šŸ”ŗ Floyd-Warshall Shortest Path - O(n3)
  • āœ… Dijkstra Shortest Path - Naive implementation
  • āœ… Dijkstra Shortest Path - O(mlog(n)) - Heap implementation
  • šŸ”ŗ Karger's Minimum cut
  • šŸ”ŗ Prim's Algorithm - O(mn) Naive implementation
  • āœ… Prim's Algorithm - O(mlog(n)) Heap implementation
  • šŸ”ŗ Kruskal's Algorithm - O(mn) implementation
  • āœ… Kruskal's Algorithm - O(mlog(n))
  • āœ… Breadth First Search - O(n + m) - Queue Implementation
  • āœ… Depth First Search - O(n + m) - Stack Implementation
  • āœ… Depth First Search - O(n + m) - Recursive Implementation

Mathematics

Algebra

  • šŸ”ŗ Karatsuba Multiplication - O(n1.585)
  • āœ… Intersection of two sets - O(nlog(n)) + O(mlog(m))
  • āœ… Union of two sets - O(nlog(n)) + O(mlog(m))

Number Theory

  • šŸ”ŗ Pollard p-1 factorization
  • šŸ”ŗ Euclidean Algorithm - O(log(n))
  • šŸ”ŗ Extended Euclidean Algorithm - O(log(n))
  • šŸ”ŗ Sieve of Eratosthenes - O(nlog(log(n)))
  • šŸ”ŗ Prime factorization - O(sqrt(n))

Cryptography

  • āœ… Ceasar Cipher
  • šŸ”ŗ Hill Cipher
  • šŸ”ŗ Vigenere Cipher*
  • šŸ”ŗ One time pad
  • šŸ”ŗ RSA-Algorithm

Numerical Methods

  • šŸ”ŗ Bisection Method
  • šŸ”ŗ (simple) Fixpoint iteration

Other

  • āœ… Maintaining Median - O(nlog(n))
  • šŸ”ŗ Huffman Algorithm
  • āœ… šŸŽ„Interval Scheduling - O(nlog(n))
  • āœ… Binary Search - O(log(n))

Sorting algorithms

  • āœ… Bubble sort - O(n2)
  • šŸ”ŗ Hope sort - O(1), hopefully
  • āœ… Insertion sort - O(n2)
  • āœ… Selection sort - O(n2)
  • āœ… Merge sort - O(nlog(n))
  • āœ… Randomized Quick sort - Average O(nlogn) (Input independent!)
  • āœ… Quick sort - Average O(nlog(n))

Contributing

I appreciate feedback on potential improvements and/or if you see an error that I've made! Also if you would like to contribute then do a pull request with algorithm & tests! :)

About

Collection of Algorithms implemented in Python

Resources

Readme
License

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800Ɨ600. No cookies required.