Skip to content

ansegura7/Algorithms

Repository files navigation

Algorithms - Python

Repository with the implementation (in Python) and description of several computational, mathematical and statistical algorithms.

Although it is not intended to have the formal rigor of a book, it was tried to be as faithful as possible to the original algorithms, only by adding variants, when these were necessary for didactic purposes.

Algorithm

In mathematics and computer science, an algorithm is a finite sequence of well-defined, computer-implementable instructions, typically to solve a class of problems or to perform a computation.

1. Algorithm's Basics
  • Greatest Common Divisor
  • Fibonacci Serie
  • Integer Factorization
  • Tower of Hanoi
  • Sorting Algorithm
  • Changing Distribution
2. Divide and Conquer
  • Binary Search
  • Quick Sort
  • Merge Sort
  • Convex Hull
3. Graphs
  • Graph or Undirected Simple Graph
  • Graph Traversal
  • Minimum Spanning Tree
  • Eulerian Circuit and Path
  • Shortest Path
  • All-Pairs Shortest Path
  • Graph Coloring
4. Dynamic Programming
  • Binomial Coefficient
  • World Championship problem
  • Coin Change problem
  • The Knapsack problem
  • Longest Common Subsequence problem
  • Sequence Alignment problem
5. Probabilistic Algorithms
  • Pseudo-Random Number Generator
  • Primality Test
  • Monte Carlo Simulation
  • Metropolis-Hastings Algorithm
  • Las Vegas Algorithm
  • Law of Large Numbers
6. Similarity Functions
  • Common Similarity functions
  • Manual examples
  • Sklearn examples
7. Chaotic Systems
  • Chaotic Systems intro
  • Fractals
8. Cellular Automata
  • Linear Cellular Automata (LCA)
  • Reversible Linear Cellular Automata (RLCA)

Python Dependencies

  conda install -c anaconda numpy
  conda install -c anaconda pymc
  conda install -c anaconda networkx

Bibliography

  • G. Brassard, P. Bratley. (2006). Fundamentals of Algorithmics. Englewood Cliffs, New Jersey: Prentice-Hall, Inc.
  • R.C.T. Lee, S.S. Tseng, R.C. Chang, Y.T.Tsai. (2005). Introduction to the Design and Analysis of Algorithms. A Strategic Approach. Asia: McGraw-Hill Education.
  • K. Rosen. (2012). Discrete Mathematics and Its Applications. NewYork, NY: McGraw-Hill Education; Edición: 7th.

Contributing and Feedback

Any kind of feedback/criticism would be greatly appreciated (algorithm design, documentation, improvement ideas, spelling mistakes, etc...).

Author

  • Created by Andrés Segura Tinoco
  • Created on May 17, 2019

License

This project is licensed under the terms of the MIT license.

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy