All Projects → ansegura7 → Algorithms

ansegura7 / Algorithms

Licence: MIT License
Free hands-on course with the implementation (in Python) and description of several computational, mathematical and statistical algorithms.

Programming Languages

HTML
75241 projects
Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to Algorithms

alchemy
Generate any a-by-( b + c ) finite rectangle SVG containing potentially Infinitely many a-by-( 2 * b ) finite rectangles animated along a number line of ( ( c - b ) / a )^n scale symmetry.
Stars: ✭ 29 (-75.21%)
Mutual labels:  computer-science, cellular-automata, mathematics
Teaching
Teaching Materials for Dr. Waleed A. Yousef
Stars: ✭ 435 (+271.79%)
Mutual labels:  computer-science, statistics, mathematics
football-graphs
Graphs and passing networks in football.
Stars: ✭ 81 (-30.77%)
Mutual labels:  graphs, networkx
ml-formulas
機械学習・統計学・理論計算科学などに出てくる等式・不等式を集めていきます
Stars: ✭ 55 (-52.99%)
Mutual labels:  computer-science, mathematics
nxontology
NetworkX-based Python library for representing ontologies
Stars: ✭ 45 (-61.54%)
Mutual labels:  graphs, networkx
math-stats
A small library that does the statistics for your numbers.
Stars: ✭ 18 (-84.62%)
Mutual labels:  statistics, mathematics
js-data-structures
🌿 Data structures for JavaScript
Stars: ✭ 56 (-52.14%)
Mutual labels:  computer-science, graphs
Algorithms-Java
A collection of common algorithms and data structures implemented in Java.
Stars: ✭ 141 (+20.51%)
Mutual labels:  computer-science, dynamic-programming
Fucking Algorithm
刷算法全靠套路,认准 labuladong 就够了!English version supported! Crack LeetCode, not only how, but also why.
Stars: ✭ 99,705 (+85117.95%)
Mutual labels:  computer-science, dynamic-programming
matematicaelementar
Matemática Elementar para Computação
Stars: ✭ 29 (-75.21%)
Mutual labels:  computer-science, mathematics
cas
Cellular Automata Simulator
Stars: ✭ 22 (-81.2%)
Mutual labels:  cellular-automata, fractal
My NoteBook
サイエンス、テクノロジー、エンジニアリング関連の情報を記載したノート(忘備録)です。
Stars: ✭ 104 (-11.11%)
Mutual labels:  computer-science, mathematics
Advanced-Shortest-Paths-Algorithms
Java Code for Contraction Hierarchies Algorithm, A-Star Algorithm and Bidirectional Dijkstra Algorithm. Tested and Verified Code.
Stars: ✭ 63 (-46.15%)
Mutual labels:  graphs, dijkstra-algorithm
recursion-and-dynamic-programming
Julia and Python recursion algorithm, fractal geometry and dynamic programming applications including Edit Distance, Knapsack (Multiple Choice), Stock Trading, Pythagorean Tree, Koch Snowflake, Jerusalem Cross, Sierpiński Carpet, Hilbert Curve, Pascal Triangle, Prime Factorization, Palindrome, Egg Drop, Coin Change, Hanoi Tower, Cantor Set, Fibo…
Stars: ✭ 37 (-68.38%)
Mutual labels:  dynamic-programming, hanoi-towers
Cheatsheets
Quick reference material for techies
Stars: ✭ 66 (-43.59%)
Mutual labels:  computer-science, mathematics
algoexpert
AlgoExpert is an online platform that helps software engineers to prepare for coding and technical interviews.
Stars: ✭ 8 (-93.16%)
Mutual labels:  graphs, dynamic-programming
SeaPearl.jl
Julia hybrid constraint programming solver enhanced by a reinforcement learning driven search.
Stars: ✭ 119 (+1.71%)
Mutual labels:  graphs, dynamic-programming
Data Science Masters
Self-study plan to achieve mastery in data science
Stars: ✭ 179 (+52.99%)
Mutual labels:  computer-science, mathematics
Cs Roadmap
My Computer Science Curriculum
Stars: ✭ 239 (+104.27%)
Mutual labels:  computer-science, mathematics
LearnCPP
Learn Cpp from Beginner to Advanced ✅ Practice 🎯 Code 💻 Repeat 🔁 One step solution for c++ beginners and cp enthusiasts.
Stars: ✭ 359 (+206.84%)
Mutual labels:  graphs, dynamic-programming

Python Algorithms Course

version release language last-update last-update

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.

Quick Start

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:

  • Open In Colab

What is an 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.

Contents

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)

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/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.

Author

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

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].