算法

Awesome Algorithms

精选的学习和/或练习算法的绝佳场所列表. 灵感来自 awesome-awesomeness 以及所有其他很棒的 Awesome 库.

如果你想贡献,请阅读 contribution guidelines.

Websites

您应该用来学习经典算法的网站

Online Courses

免费和高质量的在线课程

Books

最受推崇的学习算法的书籍

Algorithms and Data structures

Algorithm Analysis

Randomized Algorithms

Cheat Sheets

Github Libraries

以多种编程语言实现最经典的算法

Online Judges

在线裁判练习您在上面学到的知识

  • A2 Online Judge - 在线裁判和问题存档.
  • ACM-ICPC Live Archive - 之前 ACM-ICPC 区域赛和世界总决赛的数百个问题.
  • AIZU ONLINE JUDGE - 日本在线裁判.
  • Algo Muse - 基于研究的算法问题.
  • AtCoder - 日本编程比赛网站.
  • Baekjoon Online Judge - 韩国在线裁判. 10000 多个问题. 支持 60 多种语言.
  • CS Academy - 举办在线竞赛和IOI练习竞赛
  • CodeChef - 更多问题和每月在线竞赛.
  • Codeforces - 唯一的编程大赛Web 2.0平台
  • Codefights - 实践编程并解决您的下一次技术面试
  • CodeMarshal - 在线真实世界比赛!
  • CodeWars - 一个支持以多种语言解决不同难度的算法的网站.
  • CoderByte - 一个体面的网站,具有从初学者到高级水平的算法挑战. 支持大多数流行的语言,如 C++、python、javascript、ruby.
  • Firecode - Firecode.io 使用机器学习算法以及精心策划的现实面试问题、解决方案和充满活力的学习者社交社区,让您为下一次编码面试做好准备.
  • Coding Blocks - 基于数学、数据结构、各种算法存在问题的网站,还进行编码比赛.
  • HackerEarth - 练习算术问题和挑战,并参与招聘挑战.
  • HackerRank - 精选算法和函数式编程在线评委
  • HiHoCoder - 中英文解题练习及招聘挑战网站.
  • Infoarena - 罗马尼亚在线法官. 1500+ 算法题
  • Interviewbit - 学习、练习和准备面试.
  • Kattis- 在线判断和问题存档
  • LavidaOnlineJudge - 韩语在线裁判(半英文). 1300 多个问题.
  • Learneroo Algorithms Tutorials - 通过在线解决挑战来学习和练习算法.
  • LeetCode - 学习算法并准备面试.
  • PKU JudgeOnline - 中文在线裁判.
  • ProjectEuler - 可以使用算法解决的数学问题(或者只是一支铅笔,取决于你已经知道多少).
  • Rosalind - 通过解决问题来学习生物信息学和编程的平台.
  • ShareCode.io - Online Judge and contest host with a lot of algorithmic problems in the archive to practice.
  • Snakify - Python 入门课程,包含 100 多个算法问题和分步调试器(来自俄罗斯).
  • SPOJ - 更多问题.
  • TopCoder - 平面设计、数据科学与开发中的许多问题和现实世界/有价值的问题.
  • Toph - 孟加拉国在线法官. 定期举办线上比赛.
  • URI - 巴西在线裁判. 没有那么多问题,但它正在增长,并且有在线竞赛.
  • UVA - 数以百计的问题(来自之前的 ACM-ICPC 区域赛、世界总决赛等).
  • Codility - 竞争顶级公司的编码工作

Blogs

很棒的博客列表,主要用于竞争性编程,但您可以在学习新主题/算法时参考这些

Tools

一些可以帮助你学习算法的工具

License

为了 copyleft,这是我们的许可证:

Creative Commons License

这项工作已获得许可 Creative Commons Attribution 4.0 International License.