•  


GitHub - ansegura7/Algorithms: Free hands-on course with the implementation (in Python) and description of several computational, mathematical and statistical algorithms.
Skip to content

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

License

Notifications You must be signed in to change notification settings

ansegura7/Algorithms

Repository files navigation

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; Edicion: 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.

Documentation

Please read the contributing and code of conduct documentation.

Author

  • Created by Andres Segura-Tinoco
  • Created on May 17, 2019

License

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

- "漢字路" 한글한자자동변환 서비스는 교육부 고전문헌국역지원사업의 지원으로 구축되었습니다.
- "漢字路" 한글한자자동변환 서비스는 전통문화연구회 "울산대학교한국어처리연구실 옥철영(IT융합전공)교수팀"에서 개발한 한글한자자동변환기를 바탕하여 지속적으로 공동 연구 개발하고 있는 서비스입니다.
- 현재 고유명사(인명, 지명등)을 비롯한 여러 변환오류가 있으며 이를 해결하고자 많은 연구 개발을 진행하고자 하고 있습니다. 이를 인지하시고 다른 곳에서 인용시 한자 변환 결과를 한번 더 검토하시고 사용해 주시기 바랍니다.
- 변환오류 및 건의,문의사항은 juntong@juntong.or.kr로 메일로 보내주시면 감사하겠습니다. .
Copyright ⓒ 2020 By '전통문화연구회(傳統文化硏究會)' All Rights reserved.
 한국   대만   중국   일본