Skip to content

📚 My collection of most popular and necessary algorithms (2017-...)

License

Notifications You must be signed in to change notification settings

Panda-Lewandowski/Algorithms

Repository files navigation

Algorithms

Here is a custom implementation of many algorithms. Edits and improvements are welcomed. Below is a list for a quick transition.

Sorting algorithms

Numerical algorithms

Cryptography

(presented in this repository)

  • Asymmetric (public key) encryption
    • DSA
    • RSA
    • ElGamal
  • Cryptographic hash functions
    • HMAC
    • MD5
    • SHA-2
  • Cryptographically secure pseudo-random number generators
    • Fortuna
    • Yarrow algorithm
  • Key exchange
    • Diffie–Hellman key exchange
  • Key derivation function
  • Symmetric (secret key) encryption
    • Advanced Encryption Standard (AES)
    • Data Encryption Standard (DES)

Computer graphics

Number theoretic algorithms

  • Multiplication algorithms
    • Karatsuba algorithm
    • Schönhage–Strassen algorithm
    • Fürer’s algorithm
  • Algorithms of modular arithmetic
    • Montgomery modular multiplication
    • Algorithm for finding the order of an element
  • Exponentiation by squaring
  • Discrete logarithm
    • Baby-step giant-step
  • Algorithms for finding the greatest common divisor (GCD) of two numbers
    • Euclid's algorithm
    • Extended Euclidean algorithm
    • Binary GCD algorithm
  • Prime number
  • Integer factorization
    • Algorithms with exponential complexity
      • Trial division
      • Fermat's factorization method
    • Algorithms with subexponential complexity
      • Quadratic sieve
      • ...
  • Multiplying matrices
    • Strassen algorithm

Structures

Primitive types

  • Boolean
  • Character
  • Floating-point
  • Double
  • Integer
  • String
  • Reference (also called a pointer or handle)
  • Enumerated type


Materials used


COMMENT:

This list can use links to other my projects where these algorithms were used. There may be errors and shortcomings. These algorithms will be divided into separate modules and improved in the last turn due to lack of time.

Legend:

  • ✅ - ОК
  • ⚠️ - problem
  • 🆘 - need help
  • ♻️ - need update
  • 🌀 - in process

About

📚 My collection of most popular and necessary algorithms (2017-...)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages