- Notifications
You must be signed in to change notification settings - Fork22
Free hands-on course with the implementation (in Python) and description of several computational, mathematical and statistical algorithms.
License
ansegura7/Algorithms
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Free hands-on course 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, we tried to be as faithful as possible to the original algorithms and methods, only adding variants, when these were necessary for didactic purposes.
The best way to get the most out of this course is to carefully read each selected problem, try to think of a possible solution (language independent) and then look at the proposed Python code and try to reproduce it in your favorite IDE. If you already have knowledge of the Python language, then you can go directly to programming your solution and then compare it with the one proposed in the course.
If you want to play with these notebooks online without having to install any library or configure hardware, you can use the following service:
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
- Convex Hull - Greedy
- Changing Distribution
2.Divide and Conquer
- Binary Search
- Quick Sort
- Merge Sort
- Convex Hull - Recursive
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)
conda install -c anaconda numpy conda install -c anaconda pymc conda install -c anaconda networkx
- 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.
Any kind of feedback/suggestions would be greatly appreciated (algorithm design, documentation, improvement ideas, spelling mistakes, etc...). If you want to make a contribution to the course you can do it through a PR.
Please read thecontributing andcode of conduct documentation.
- Created by Andrés Segura-Tinoco
- Created on May 17, 2019
This project is licensed under the terms of theMIT license.
About
Free hands-on course with the implementation (in Python) and description of several computational, mathematical and statistical algorithms.
Topics
Resources
License
Code of conduct
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.