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. Sqlyog增加试用期

    win+r->输入regedit->进入注册表 在计算机->HKEY_CURRENT_USER->Software->{906D6D9F-AB51-429F……}中删除I ...

  2. 作业三--Linux内核分析

    一.Linux内核源码 arch目录支持不同CPU的源代码,是内核源码中比较大的文件. fs文件系统Linux内核的源码放在kernel目录中. 二.构造一个简单的Linux系统MenuOS 三.使用 ...

  3. bndtools教程

    使用工具编程的确能给人们带来很多便利,但是在不会用之前,且缺乏相应的中文资料让你去了解时,真是一种折磨,同时也是一种挑战. bndTools其实就是用来开发OSGi的一个工具,它为开发提供了便利,具体 ...

  4. Careercup - Facebook面试题 - 5177378863054848

    2014-05-02 08:29 题目链接 原题: Write a function for retrieving the total number of substring palindromes. ...

  5. spring配置事务

    一.配置JDBC事务处理机制 <!-- 配置Hibernate事务处理 --> <bean id="transactionManager" class=" ...

  6. cg 到hlsl的转换

    http://msdn.microsoft.com/en-us/library/windows/desktop/ff471376(v=vs.85).aspx http://gamedev.stacke ...

  7. CSS属性--过渡(transtion)

    首先介绍一下transition的属性取值: transition-property : 主要设置对象中的参与过渡的属性,包括(border-color,background-color,color) ...

  8. PE文件结构详解(一)基本概念

    PE(Portable Execute) 文件是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等,事实上,一个文件是否是PE文件与其扩展名无关,PE文件可以是任 何扩展名.那 ...

  9. python库:fuzzywuzzy

    fuzzywuzzy 用于字符串匹配率.令牌匹配等 复制代码代码如下: from fuzzywuzzy import fuzzfuzz.ratio("Hit me with your bes ...

  10. 为什么Android 3.0如此罕见?

    3.0(2011年2月)代号蜂巢,专用于android系统的平板电脑,不用于手机.4.0(2011年5月公布)的开发就是让平板电脑和手机能够共用一个版本的系统.4.0通用于平板电脑和手机.