yazaldefilimone / algorithms

🤓 | Computer science | Algorithms | Data structures

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NB: All data structures implement from scratch without using an existing structure, and I intend to reuse them in the algorithms

Technical

  • Big O notation
    • Constant - (1)
    • Linear - (n)
    • Logarithmic - (log n)
    • Quadratic (n^2)
    • Exponential (2^n)

Data Structures

Algorithms

Math

  • Bit Manipulation - set/get/update/clear bits, multiplication/division by two, make negative etc.
  • Binary Floating Point - binary representation of the floating-point numbers.
  • Factorial
  • Fibonacci Number - classic and closed-form versions
  • Prime Factors - finding prime factors and counting them using Hardy-Ramanujan's theorem
  • Primality Test (trial division method)
  • Euclidean Algorithm - calculate the Greatest Common Divisor (GCD)
  • Least Common Multiple (LCM)
  • Sieve of Eratosthenes - finding all prime numbers up to any given limit
  • Is Power of Two - check if the number is power of two (naive and bitwise algorithms)
  • Pascal's Triangle
  • Complex Number - complex numbers and basic operations with them
  • Radian & Degree - radians to degree and backwards conversion
  • Fast Powering
  • Horner's method - polynomial evaluation
  • Matrices - matrices and basic matrix operations (multiplication, transposition, etc.)
  • Euclidean Distance - distance between two points/vectors/matrices
  • Integer Partition
  • Square Root - Newton's method
  • Liu Hui Ï€ Algorithm - approximate Ï€ calculations based on N-gons
  • Discrete Fourier Transform - decompose a function of time (a signal) into the frequencies that make it up

Cryptography

  • Polynomial Hash - rolling hash function based on polynomial
  • Rail Fence Cipher - a transposition cipher algorithm for encoding messages
  • Caesar Cipher - simple substitution cipher
  • Hill Cipher - substitution cipher based on linear algebra

Machine Learning

  • NanoNeuron
  • k-NN
  • k-Means

Image Processing

  • Seam Carving
  • Weighted Random

License

MIT © Yazalde Filimone

About

🤓 | Computer science | Algorithms | Data structures


Languages

Language:JavaScript 90.1%Language:Rust 3.3%Language:Python 2.6%Language:C++ 2.3%Language:TypeScript 1.7%