├── CONTRIBUTING.md └── README.md /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Guidelines: 4 | 5 | - Search previous suggestions before making a new one, as yours may be a duplicate. 6 | - Make an individual pull request for each suggestion. 7 | - Use the following format: `[Item Name](link) - Description` 8 | - The pull request and commit should have a useful title. 9 | 10 | Thank you for your suggestions! 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Algorithms Go 2 | 3 | A curated list of awesome sources to learn algorithms in Golang. 4 | 5 | If you want to contribute, please read the [contribution guidelines](https://github.com/minatafreshi/awsome-algorithms-Go/blob/master/CONTRIBUTING.md). 6 | 7 | - [Awesome Algorithms Go](#awesome-algorithms-go) 8 | - [Websites](#websites) 9 | - [Online Courses](#online-courses) 10 | - [Github Libraries](#github-libraries) 11 | - [Online Judges](#online-judges) 12 | 13 | 14 | ## Websites 15 | 16 | * [Algomation](http://www.algomation.com/) - A didactic, animated, exposition of algorithms. 17 | * [Algorithm Visualizer](http://algo-visualizer.jasonpark.me/) - Dozens of animated algorithms (with code), and you can also create your own. 18 | * [Algorithms Visualization](http://bost.ocks.org/mike/algorithms/) - A dense article on Algorithms Visualization. 19 | * [Big-O Cheat Sheet](http://bigocheatsheet.com/) - Big-O complexities of common algorithms used in Computer Science. 20 | * [Path Finding](https://qiao.github.io/PathFinding.js/visual/) - A visual representation on how algorithms such as A\*, IDA\*, Breadth-First-Search, Best-First-Search and others describe a path between two points A and B. 21 | * [calhoun](https://www.calhoun.io/lets-learn-algorithms/) - Starting to learn algorithms get a better grasp on what they are learning. 22 | * [Stoimen's web log](http://www.stoimen.com/) - Some algorithms nicely explained. 23 | * [VisuAlgo](http://visualgo.net) - Visualising data structures and algorithms through animation. 24 | * [Wikipedia - Algorithms](https://en.wikipedia.org/wiki/List_of_algorithms) - 25 | * [Geeks for Geeks](http://www.geeksforgeeks.org/fundamentals-of-algorithms/) - Lots of well explained and implemented algorithms. 26 | * [Sorting Algorithms](http://www.sorting-algorithms.com/) - Simple animations of sorting algorithms. 27 | * [Code-Drills](https://code-drills.com/tools/comparator) - Practice problems recommender. 28 | 29 | ## Online Courses 30 | 31 | 32 | * [Algorithms, Part I](https://www.coursera.org/learn/algorithms-part1/home/welcome) - Part I covers elementary data structures, sorting, and searching algorithms. 33 | * [Algorithms, Part II](https://www.coursera.org/learn/algorithms-part2) - Part II focuses on graph- and string-processing algorithms. 34 | * [MIT - 6-006](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/lecture-videos/) - Explained algorithms. 35 | * [MIT - 6-046j](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures/) - Explained algorithms. 36 | * [MIT - 6-00sc](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/index.htm) - Explained algorithms. 37 | 38 | 39 | ## Github Libraries 40 | 41 | *Implementations of the most algorithms in Golang* 42 | 43 | * Mspm 44 | * [by @BlackRabbitt](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching algorithm. 45 | * Go astar 46 | * [by @beefsack](https://github.com/beefsack/go-astar) - Go implementation of the A* path finding algorithm. 47 | * Bild 48 | * [by @anthonynsimon](https://github.com/anthonynsimon/bild) - Collection of image processing algorithms in pure Go. 49 | * [Scala](https://github.com/vkostyukov/scalacaster) 50 | * Evoli 51 | * [by @khezen](https://github.com/khezen/evoli) - Genetic Algorithm and Particle Swarm Optimization library. 52 | * Go cluster 53 | * [by @e-XpertSolutions](https://github.com/e-XpertSolutions/go-cluster) - Go implementation of the k-modes and k-prototypes clustering algorithms. 54 | * Go galib 55 | * [by @thoj](https://github.com/thoj/go-galib) - Genetic Algorithms library written in Go 56 | * Goga 57 | * [by @tomcraven](https://github.com/tomcraven/goga) - Genetic algorithm library for Go. 58 | * Go Recommend 59 | * [by @timkaye11](https://github.com/timkaye11/goRecommend) - Recommendation Algorithms library written in Go. 60 | * Mlgo 61 | * [by @NullHypothesis](https://github.com/NullHypothesis/mlgo) - This project aims to provide minimalistic machine learning algorithms in Go. 62 | * Go gt 63 | * [by @ThePaw ](https://github.com/ThePaw/go-gt) - Graph theory algorithms written in "Go" language. 64 | * Graph 65 | * [by @yourbasic](https://github.com/yourbasic/graph) - Library of basic graph algorithms 66 | * Pagerank 67 | * [by @alixaxel](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go. 68 | * PiHex 69 | * [by @claygod ](https://github.com/claygod/PiHex) - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi. 70 | 71 | 72 | 73 | 74 | ## Online Judges 75 | 76 | *Online Judges to practice what you learned above* 77 | 78 | * [A2 Online Judge](https://a2oj.com/) - Online Judge and problem archive. 79 | * [ACM-ICPC Live Archive](https://icpcarchive.ecs.baylor.edu/) - Hundreds of problems from previous ACM-ICPC Regionals and World Finals. 80 | * [Algo Muse](http://www.algomuse.appspot.com) - Research based algorithmic problems. 81 | * [CS Academy](https://csacademy.com/) - Holds online contests and IOI practice contests 82 | * [CodeChef](https://www.codechef.com/) - More problems and monthly online contests. 83 | * [CodeWars](http://www.codewars.com/) - A website that houses support to solve algorithms in many languages in varying difficulty. 84 | * [Firecode](https://www.firecode.io/)- Firecode.io uses machine learning algorithms along with curated real-world interview questions, solutions & a vibrant social community of learners to get you ready for your next coding interview. 85 | * [HackerRank](https://www.hackerrank.com/) - Featured algorithm and functional programming online judges 86 | * [Kattis](https://open.kattis.com/)- Online judge and problem archive 87 | * [Learneroo Algorithms Tutorials](https://www.learneroo.com/subjects/8) - Learn and practice algorithms by solving challenges online. 88 | * [LeetCode](https://leetcode.com/) - Learn algorithms and prepare for interviews. 89 | * [Rosalind](http://rosalind.info/problems/locations/) - A platform for learning bioinformatics and programming through problem solving. 90 | * [ShareCode.io ](https://sharecode.io/) - Online Judge and contest host with a lot of algorithmic problems in the archive to practice. 91 | * [SPOJ](http://www.spoj.com/) - More problems. 92 | * [TopCoder](https://www.topcoder.com/) - Lots of problems and real world/money worthy problems in Graphic Design, Data Science and Development. 93 | * [UVA](https://uva.onlinejudge.org/) - Hundreds of problems (from previous ACM-ICPC Regionals, World Finals and others). 94 | --------------------------------------------------------------------------------