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 ...
随机推荐
- 如何用jmeter对websock和protobuf进行压力测试
1. 一个websocket插件官网地址 https://github.com/maciejzaleski/JMeter-WebSocketSampler 2. 可以用上述插件,也可以自己扩展,以实现 ...
- C++拷贝构造函数详解(转载)
一. 什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员 ...
- WinForm中Component Class、User Control及Custom Control的区别和使用-转
转http://www.cnblogs.com/jhtchina/archive/2010/11/28/1028591.html NET Framework 为您提供了开发和实现新控件的能力.除了常见 ...
- UVA 714 Copying Books 二分
题目链接: 题目 Copying Books Time limit: 3.000 seconds 问题描述 Before the invention of book-printing, it was ...
- 【POJ】【3071】Football
概率DP kuangbin总结中的第10题 简单的画个比赛图,会发现是一颗完全二叉树,且同一层的子树之间各自独立,只有在合并得到更高一层结果时才结合. 所以我们可以按比赛轮数进行DP,f[i][j]表 ...
- 【IOC--Common Service Locator】不依赖于某个具体的IoC
你在你的应用程序应用IoC容器了吗,你是否希望不依赖于某个具体的IoC,微软的模式与实践团队在Codeplex上发布的Common Service Locator.Common Service Loc ...
- 关于nginx限制IP或IP段的问题2011
关于nginx限制IP或IP段的问题2011-04-08 16:46:39 分类: LINUX 最近有同事问需要在nginx中针对一些IP和IP段限制访问,通过了解以下方法可以解决问题: 首先建立 ...
- How does database indexing work?
When data is stored on disk based storage devices, it is stored as blocks of data. These blocks are ...
- 01 - 编译链接第一个wxWidgets3.0例子
1. preprocessor #define __WXMSW__#define WXUSINGDLL 2. vc10中设置Include dir, lib dir, dll path VC++平台编 ...
- AutoEventWireup解释
这一事件聚合了当前页是否自动关联某些特殊事件. 首先,从浏览器页面出发的事件不能立刻在本地得到处理,而是POST至服务器上,因此,asp.net建立了委托(代理)机制.在建立一个事件的同事,建立相应的 ...