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

Online Courses

Free and High Quality Courses Online

Books

The most highly regarded books to learn algorithms

Github Libraries

Implementations of the most classic algorithms in a wide variety of programming languages

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

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的更多相关文章

  1. 剪短的python数据结构和算法的书《Data Structures and Algorithms Using Python》

    按书上练习完,就可以知道日常的用处啦 #!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving wit ...

  2. OpenCascade Modeling Algorithms Fillets and Chamfers

    Modeling Algorithms Fillets and Chamfers 造型算法——倒圆与倒角 eryar@163.com 一.倒圆Fillet Constructor 1. BRepFil ...

  3. OpenCascade Modeling Algorithms Boolean Operations

    Modeling Algorithms Boolean Operations of Opencascade eryar@163.com 布尔操作(Boolean Operations)是通过两个形状( ...

  4. Machine Learning Algorithms Study Notes(3)--Learning Theory

    Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...

  5. Machine Learning Algorithms Study Notes(2)--Supervised Learning

    Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...

  6. Machine Learning Algorithms Study Notes(1)--Introduction

    Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 目 录 1    Introduction    1 1.1    ...

  7. Algorithms, Part I by Kevin Wayne, Robert Sedgewick

    Welcome to Algorithms, Part I 前言 昨天在突然看到了Coursera上Robert Sedgewick讲的Algorithms,Part II看了一些,甚是爽快,所以又去 ...

  8. LTE Module User Documentation(翻译13)——频率复用算法(Frequency Reuse Algorithms)

    LTE用户文档 (如有不当的地方,欢迎指正!)   19 Frequency Reuse Algorithms(频率复用算法)   本节我们将描述如何在 LTE 仿真中使用频率复用(FR)算法.共有两 ...

  9. 算法分析 Analysis of Algorithms -------GeekforGeeker 翻译

    算法分析 Analysis of Algorithms 为什么要做性能分析?Why performance analysis? 在计算机领域有很多重要的因素我们要考虑 比如用户友好度,模块化, 安全性 ...

  10. 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 ...

随机推荐

  1. c语言编程之栈(数组实现)

    用数组实现的顺序栈,完成了出栈入栈功能. #include"stdio.h" typedef int element; #define max 100 typedef struct ...

  2. try-catch-finally中return的执行情况分析

    try-catch-finally中return的执行情况分析: 1.在try中没有异常的情况下try.catch.finally的执行顺序 try --- finally 2.如果try中有异常,执 ...

  3. windows批处理(cmd/bat)编程详解

    reference: http://blog.csdn.net/bingjie1217/article/details/12947327 http://www.cnblogs.com/doit8791 ...

  4. [sql server、oracle] 分组取最大值最小值常用sql

    sqlserver2005前: --分组取最大最小常用sql--测试环境if OBJECT_ID('tb') is not null drop table tb;gocreate table tb(  ...

  5. Intellij IDEA14 下添加ExtJS提示支持

    前言: 虽然Interlij IDEA比起Eclipse对待EXT更为支持,但自己上手后总不能达到Intellij 开发ExtJS 应用指南(http://blog.csdn.net/s4640368 ...

  6. JS中的className含义

    问题描述:     JS中的className含义 问题解决:     className说明:         className属性可以设置和返回元素的class属性 可以有两种方法来获取对象的c ...

  7. JS Web打印,实现预览新样式

    问题描述:     JS实现Web打印,要求打印前一种样式,打印预览时新样式 问题解决:         (1)设置打印时的css样式,设置打印前的css样式 注:         以上为print. ...

  8. javaZIP压缩文件

    问题描述: java ZIP压缩文件 问题解决:     说明:         防止创建压缩文件中中文乱码,需要导入的包:     (1)创建ZipOutputStream 注:     以上引用o ...

  9. c库函数之scanf

    scanf()函数的原理 想象输入设备(键盘)连接着一个叫“缓冲”的东西,把缓冲认为是一个字符数组. 当你的程序执行到scanf时,会从你的缓冲区读东西,如果缓冲区是空的,就阻塞住,等待你从键盘输入. ...

  10. PhyreEngine3.8 MSAA resolution

    There is something wrong in PhyreEngine 3.8 to fullfill MSAA, actually, I think it is eqaa You have ...