/Algorithms

Several algorithms implemented in Python for learning purposes

Primary LanguagePython

Algorithms

Several algorithms implemented in Python, documented and classified by different categories.

(Feel free to contribute to the project)

At the end of every algorithm, there is driver (example) code to demonstrate the algorithm

  1. Artificial intelligence

    • MiniMax (TicTacToe) (Cannot be considered as an exact A.I. algorithm, more of a Maths one)

      Dependencies: tictactoeaddons.py, copy, inspect
      
  2. Compression

    • Huffman compression (coding)

      Dependencies: No dependencies
      
    • Run-length compression (encoding)

      Dependencies: re (Regex)
      
  3. Cryptography

    • Advanced Encryption Standard (Rijndael)

      Dependencies: copy
      
    • Diffie-Hellman key exchange

      Dependencies: math, time, random
      
    • Message Digest 5 (MD5)

      Dependencies: math, numpy, random
      
  4. Data science

    • Principal Component Analysis (2D)

      Dependencies: random, numpy, sympy, matplotlib.pyplot, math
      
    • Cluster Analysis (K-means and Hierarchial clustering)

      Dependencies: numpy, matplotlib.pyplot
      
  5. Drawing (Fractals)

     Dependencies: turtle
    
    • Fractal Tree
    • Koch Snowflake
  6. Graphics

    • Value Noise

      Dependencies: random, numpy, matplotlib.pyplot, matplotlib.image
      
  7. Maths

    • Taylor series

      Dependencies: sympy, math
      
  8. Sorting

     Dependencies: unittest (just for the tests)
    
    • Insertion Sort
    • Merge sort