学习和实践算法资源集合:Awesome Algorithms
jopen
10年前
学习和实践算法资源集合:Awesome Algorithms。
- Awesome Algorithms </li> </ul>
Websites
Websites you should use to learn classic algorithms
- Wikipedia - Algorithms - Of course!!
- Wikipedia - Data Structures - and why not ?!!
- Geeks for Geeks - Lots and lots of well explained and implemented algorithms.
- Data Structure Visualizations - Visualize the behavior of Data Structures and play with its operations.
- Algorithms Visualization - A dense article on Algorithms Visualization.
- Big-O Cheat Sheet - Big-O complexities of common algorithms used in Computer Science.
- stoimen's web log - Some algorithms nicely explained.
- VisuAlgo - Visualising data structures and algorithms through animation.
- Algomation - A didactic, animated, exposition of algorithms.
Online Courses
Free and High Quality Courses Online
- MIT - 6-00sc - An easy and well explained introduction to algorithms.
- MIT - 6-006 - Well explained algorithms.
- MIT - 6-046j - Similar to the previous one, but with different algorithms.
- YogiBearian 油Tube Channel - Lots of well explained vidoes on various computer science subjects.
Books
The most highly regarded books to learn algorithms
- Introduction to Algorithms - Essential!
- The Algorithm Design Manual - Easy to read and full of real world examples.
- Algorithm Design - Pretty straight-forward.
- The Art of Computer Programming - The Book.
- Elementary Algorithms - An awesome book about algorithms and data structures.
- Data Structures Using C - The basic concepts and usages of data structures.
Github Libraries
Implementations of the most classic algorithms in a wide variety of programming languages
- C
- CoffeeScript
- C# </li>
- C++
- Erlang
- Java
- by @phishman3579
- by @asmolich
- by @psjava </ul> </li>
- JavaScript
- by @felipernb
- by @nzakas
- by @duereg </ul> </li>
- Objective-C
- by @ EvgenyKarkan </ul> </li>
- Python
- by @nryoung
- by @prakhar1989
- by @laurentluce </ul> </li>
- Ruby
- Scala
- Language agnostic
- by @kennyledet
- by @indy256 </ul> </li> </ul>
- UVA - Hundreds of problems (from previous ACM-ICPC Regionals, World Finals and others).
- SPOJ - More problems.
- ACM-ICPC Live Archive - Hundreds of problems from previous ACM-ICPC Regionals and World Finals.
- URI - Brazilian Online Judge. Not so much problems, but it's growing and it has online contests.
- CodeChef - More problems and monthly online contests.
- CodeMarshal - Real world contests online!
- ProjectEuler - Mathematical problems that can be solved using algorithms (or just a pencil, depends on how much you already know).
- TopCoder - Lots of problems and real world/money worthy problems in Graphic Design, Data Science and Development.
- Infoarena - Romanian Online Judge. 1500+ algorithmic problems
- AIZU ONLINE JUDGE - Japanese Online Judge.
- PKU JudgeOnline - Chinese Online Judge.
- Rosalind - A platform for learning bioinformatics and programming through problem solving.
- flow-chart.js - A tool that allows you to create flowcharts that can simulate real algorithms.
Online Judges
Online Judges to practice what you learned above
Tools
Some tools that can help you in the learning of algorithms