Awesome Algorithms
Awesome Algorithms
A curated list of awesome places to learn and/or practice algorithms.
Inspired by awesome-awesomeness and all the other awesome Awesome libraries.
If you want to contribute, please read the [contribution guidelines] (https://github.com/tayllan/awesome-algorithms/blob/master/CONTRIBUTING.md).
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.
- Algorithmist - The Algorithmist is a resource dedicated to anything algorithms - from the practical realm, to the theoretical realm. There are also links and explanation to problemsets.
- Learn Algorithms - A website that explains some algorithms very well and simply, even for the most novice of programmers.
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 YouTube Channel - Lots of well explained vidoes on various computer science subjects.
- Algorithms: Design and Analysis, Part 1 - Course mainly based on the book "Introduction to Algorithm".
- Algorithms: Design and Analysis, Part 2 - Second part, focusing on Greedy and Dynamic paradigms, and NP-Complete problems.
- Udacity Intro to Algorithms - Python-based Algorithms course.
- Khan Academy Algorithms - Algorithm course ministred by Tomas Cormen and Devin Balkcom.
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.
- Algorithms - Problems explained with Java, OO good practices, visualizations, and free online resources.
- Swift Algorithms & Data Structures - A practical guide to concepts, theory and code.
- Grokking Algorithms - An illustrated book on algorithms with practical examples.
Github Libraries
Implementations of the most classic algorithms in a wide variety of programming languages
- C
- CoffeeScript
- C#
- by @sorrentmutie
- by @shkolovy
- by @aalhour
- C++
- Erlang
- Go
- Java
- by @phishman3579
- by @asmolich
- by @psjava
- by @jeandersonbc
- by @pedrovgs
- JavaScript
- by @felipernb
- by @nzakas
- by @duereg
- by @mgechev
- Objective-C
- by @ EvgenyKarkan
- Python
- by @nryoung
- by @prakhar1989
- by @laurentluce
- Ruby
- [by @kanwei] (https://github.com/kanwei/algorithms)
- [by @sagivo] (https://github.com/sagivo/algorithms)
- Scala
- Swift
- [by @kingreza] (https://github.com/kingreza/Swift-Algorithms-Strings-)
- [by @waynewbishop] (https://github.com/waynewbishop/SwiftStructures)
- Language agnostic
- by @kennyledet
- by @indy256
- by @sagivo
- by @patmorin
Online Judges
Online Judges to practice what you learned above
- 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.
- Learneroo Algorithms Tutorials - Learn and practice algorithms by solving challenges online.
- 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.
- LavidaOnlineJudge - Korean Online Judge(Half English). 1300+ problems.
- LeetCode - Learn algorithms and prepare for interviews.
- HackerRank - Featured algorithm and functional programming online judges
- HackerEarth - Practice alogrithmic problems & challenges and participate in hiring challenges.
- Codeforces - The only programming contests Web 2.0 platform
- CoderByte - A decent website with algorithm challenges from beginner to advanced levels. Supports most of the popular languages like C++, python, javascript, ruby.
- ShareCode.io - Online Judge and contest host with a lot of algorithmic problems in the archive to practice.
Tools
Some tools that can help you in the learning of algorithms
- flow-chart.js -
A tool that allows you to create flowcharts that can simulate real algorithms. - interactive-coding-challenges - Interactive, test-driven coding challenges (algorithms and data structures).
License
And for the sake of copyleft, here's our license:
This work is licensed under a Creative Commons Attribution 4.0 International License.
Awesome Algorithms的更多相关文章
- 剪短的python数据结构和算法的书《Data Structures and Algorithms Using Python》
按书上练习完,就可以知道日常的用处啦 #!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving wit ...
- OpenCascade Modeling Algorithms Fillets and Chamfers
Modeling Algorithms Fillets and Chamfers 造型算法——倒圆与倒角 eryar@163.com 一.倒圆Fillet Constructor 1. BRepFil ...
- OpenCascade Modeling Algorithms Boolean Operations
Modeling Algorithms Boolean Operations of Opencascade eryar@163.com 布尔操作(Boolean Operations)是通过两个形状( ...
- Machine Learning Algorithms Study Notes(3)--Learning Theory
Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...
- Machine Learning Algorithms Study Notes(2)--Supervised Learning
Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...
- Machine Learning Algorithms Study Notes(1)--Introduction
Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 目 录 1 Introduction 1 1.1 ...
- Algorithms, Part I by Kevin Wayne, Robert Sedgewick
Welcome to Algorithms, Part I 前言 昨天在突然看到了Coursera上Robert Sedgewick讲的Algorithms,Part II看了一些,甚是爽快,所以又去 ...
- LTE Module User Documentation(翻译13)——频率复用算法(Frequency Reuse Algorithms)
LTE用户文档 (如有不当的地方,欢迎指正!) 19 Frequency Reuse Algorithms(频率复用算法) 本节我们将描述如何在 LTE 仿真中使用频率复用(FR)算法.共有两 ...
- 算法分析 Analysis of Algorithms -------GeekforGeeker 翻译
算法分析 Analysis of Algorithms 为什么要做性能分析?Why performance analysis? 在计算机领域有很多重要的因素我们要考虑 比如用户友好度,模块化, 安全性 ...
- Virtual Memory DEMAND PAGING - The avoidance of thrashing was a major research area in the 1970s and led to a vari- ety of complex but effective algorithms.
COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION With the use of pagin ...
随机推荐
- c语言编程之栈(数组实现)
用数组实现的顺序栈,完成了出栈入栈功能. #include"stdio.h" typedef int element; #define max 100 typedef struct ...
- try-catch-finally中return的执行情况分析
try-catch-finally中return的执行情况分析: 1.在try中没有异常的情况下try.catch.finally的执行顺序 try --- finally 2.如果try中有异常,执 ...
- windows批处理(cmd/bat)编程详解
reference: http://blog.csdn.net/bingjie1217/article/details/12947327 http://www.cnblogs.com/doit8791 ...
- [sql server、oracle] 分组取最大值最小值常用sql
sqlserver2005前: --分组取最大最小常用sql--测试环境if OBJECT_ID('tb') is not null drop table tb;gocreate table tb( ...
- Intellij IDEA14 下添加ExtJS提示支持
前言: 虽然Interlij IDEA比起Eclipse对待EXT更为支持,但自己上手后总不能达到Intellij 开发ExtJS 应用指南(http://blog.csdn.net/s4640368 ...
- JS中的className含义
问题描述: JS中的className含义 问题解决: className说明: className属性可以设置和返回元素的class属性 可以有两种方法来获取对象的c ...
- JS Web打印,实现预览新样式
问题描述: JS实现Web打印,要求打印前一种样式,打印预览时新样式 问题解决: (1)设置打印时的css样式,设置打印前的css样式 注: 以上为print. ...
- javaZIP压缩文件
问题描述: java ZIP压缩文件 问题解决: 说明: 防止创建压缩文件中中文乱码,需要导入的包: (1)创建ZipOutputStream 注: 以上引用o ...
- c库函数之scanf
scanf()函数的原理 想象输入设备(键盘)连接着一个叫“缓冲”的东西,把缓冲认为是一个字符数组. 当你的程序执行到scanf时,会从你的缓冲区读东西,如果缓冲区是空的,就阻塞住,等待你从键盘输入. ...
- PhyreEngine3.8 MSAA resolution
There is something wrong in PhyreEngine 3.8 to fullfill MSAA, actually, I think it is eqaa You have ...