Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/roseduan/awesome-algorithm-cn

精选了一系列很棒的学习或者练习算法的网址、项目等,受到 awesome-awesomeness 以及其他 awesome 系列项目的启发。
https://github.com/roseduan/awesome-algorithm-cn

List: awesome-algorithm-cn

Last synced: 23 days ago
JSON representation

精选了一系列很棒的学习或者练习算法的网址、项目等,受到 awesome-awesomeness 以及其他 awesome 系列项目的启发。

Awesome Lists containing this project

README

        

# awesome-algorithm-cn

精选了一系列很棒的学习或者练习算法的网址、项目等,受到 [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) 以及其他 awesome 系列项目的启发。

- [awesome-algorithm-cn](#awesome-algorithm-cn)
- [网站](#网站)
- [在线课程](#在线课程)
- [书籍](#书籍)
- [备忘单](#备忘单)
- [Github 仓库](#Github-仓库)
- [在线评审](#在线评审)
- [工具](#工具)

## 网站

一些你可以用来学习经典算法的网站。

* [A Visual Guide to Graph Traversal Algorithms](https://workshape.github.io/visual-graph-algorithms/) - 一个交互式可视化学习图遍历算法的网站。
* [W3School](https://www.w3schools.in/data-structures-tutorial/intro/) - 完善的数据结构和算法的教程,相关代码很详细。
* [Algorithm Visualizer](http://algo-visualizer.jasonpark.me/) - 数十种动画算法(带有代码),你还可以创建自己的动画算法。
* [Algorithms Visualization](http://bost.ocks.org/mike/algorithms/) - 关于算法可视化的一些文章。
* [Big-O Cheat Sheet](http://bigocheatsheet.com/) - 涵盖了计算机科学领域通用算法的大 O 复杂度。
* [Code-Drills](https://code-drills.com/tools/comparator) - 算法问题推荐(包括 Codeforces, Codechef 和 Spoj 平台)。
* [CP-Algorithms](https://cp-algorithms.com/) - 介绍在计算机领域流行的算法与数据结构的网站。
* [Data Structure Visualizations](http://www.cs.usfca.edu/~galles/visualization/Algorithms.html) - 以动画展示你对一些数据结构的操作的网站。
* [Geeks for Geeks](http://www.geeksforgeeks.org/fundamentals-of-algorithms/) - 包含大量解释详细并且完全实现的算法。
* [Path Finding](https://qiao.github.io/PathFinding.js/visual/) - 可视化展示一些图论算法,比如 A,IDA,BFS 等等。
* [Programiz](https://www.programiz.com/dsa) - 易于学习的数据结构和算法教程,配有完善的代码示例。
* [Rosetta Code](http://rosettacode.org/wiki/Rosetta_Code) - 一个编程主题站点,旨在以不同的编程语言介绍许多算法和数据结构的实现。

* [Sorting Algorithms](http://www.sorting-algorithms.com/) - 简洁易懂的排序算法动画,附有代码和评论。

* [Stoimen's web log](http://www.stoimen.com/) - 包含一些解释得很棒的算法。
* [The Sound of Sorting](http://panthema.net/2013/sound-of-sorting/) - 排序算法的声音,在听觉和视觉上感受排序算法。
* [VisuAlgo](http://visualgo.net) - 通过动画将数据结构和算法可视化展示。
* [Learnersbucket](https://learnersbucket.com/) - 使用 JavaScript 实现的数据结构和算法教程。
* [redblobgames](https://www.redblobgames.com/) - 交互可视化的算法解释,使用电脑游戏当中的一些例子。

## 在线课程

一些免费并且高质量的在线课程。

- [Algorithms: Divide and Conquer, Sorting and Searching, and Randomized Algorithms](https://www.coursera.org/learn/algorithms-divide-conquer) - 主要的内容有:大 O 渐进表示法、排序和搜索、分治思想以及随机算法。
- [Algorithms: Graph Search, Shortest Paths, and Data Structures](https://www.coursera.org/learn/algorithms-graphs-data-structures) - 主要的内容有:数据结构,图原语及其应用。
- [Algorithms: Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming](https://www.coursera.org/learn/algorithms-greedy) - 主要的内容:贪心算法和动态规划。
- [Algorithms: Shortest Paths Revisited, NP-Complete Problems and What To Do About Them](https://www.coursera.org/learn/algorithms-npcomplete) - 主要的内容:最短路径,NP 完备性和它对算法设计者的意义,以及处理计算棘手问题的策略。
- [Algorithms, Part I](https://www.coursera.org/learn/algorithms-part1/home/welcome) - 本课程涵盖了每个程序员需要知道的算法和数据结构的基本信息。第一部分介绍基本的数据结构、排序和搜索算法。
- [Algorithms, Part II](https://www.coursera.org/learn/algorithms-part2) - 第二部分重点介绍图和字符串处理算法。
- [Khan Academy Algorithms](https://www.khanacademy.org/computing/computer-science/algorithms) - 由 Tomas Cormen 和 Devin Balkcom 主持的算法课程。
- [MIT - 6-006](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/lecture-videos/) - 解释得很好的算法。
- [MIT - 6-046j](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures/) - 类似于前一个,只不过是不同的算法。
- [MIT - 6-00sc](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/index.htm) - 这是一个简单而又解释得很好的算法介绍。
- [Udacity Intro to Algorithms](https://www.udacity.com/course/intro-to-algorithms--cs215) - 基于 Python 的算法课程。
- [Algorithms in Motion](https://www.manning.com/livevideo/algorithms-in-motion) - 这是一门面向算法初学者,使用了大量有趣的插图,基于书籍《Grokking Algorithms》的算法课程。

## 书籍

学习算法的一些常见书籍。

### 算法和数据结构

#### 英文

* [Algorithm Design](https://www.pearsonhighered.com/program/Kleinberg-Algorithm-Design/PGM319216.html) - 非常简洁直白的算法分析书籍。
* [Algorithms](http://algs4.cs.princeton.edu/home/) - 使用 Java 实现的算法示例,良好的实践,可视化教程,带有免费的在线资源。
* [Algorithms and Data Structures in JavaScript](https://gum.co/dsajs) - 经典的算法和数据结构,由 JavaScript 实现。
* [Algorithms in a Nutshell](https://www.amazon.com/Algorithms-Nutshell-In-OReilly/dp/059651624X) - 由 George T. Heineman 撰写。

#### 中文

* [算法·第四版](https://book.douban.com/subject/19952400/) - 算法领域的经典书籍,涵盖每位程序员应知应会的 50 种算法。
* [算法导论](https://book.douban.com/subject/20432061/) - 经典算法书籍,内容丰富、结构合理、逻辑清晰。
* [大话数据结构](https://book.douban.com/subject/6424904/) - 以趣味的方式叙述数据结构,并引用了各种生活知识来类比。
* [啊哈!算法](https://book.douban.com/subject/25894685/) - 一本充满智慧和趣味的算法入门书。
* [算法图解](https://book.douban.com/subject/26979890/) - 示例丰富,图文并茂,以让人容易理解的方式阐释了算法。

## 备忘单

* [The Technical Interview Cheat Sheet](https://gist.github.com/TSiege/cbb0507082bb18ff7e4b)
* [Princeton DS Cheat Sheet](https://algs4.cs.princeton.edu/cheatsheet/)
* [CLRS in short](https://sinon.org/algorithms//#data-structures)
* [Rice university DS course in short](https://www.clear.rice.edu/comp160/data1.html)
* [Useful Reddit thread](https://www.reddit.com/r/learnprogramming/comments/3gpvyx/algorithms_and_data_structures_cheat_sheets/)
* [Algo Deck](https://github.com/teivah/algodeck/)

## Github 仓库

一些使用各种编程语言实现算法的仓库。

### C

* [c-algorithms](https://github.com/fragglet/c-algorithms) by @fragglet,一些使用 C 语言实现的常用数据结构及算法。
* [TheAlgorithms/C](https://github.com/TheAlgorithms/C) by @TheAlgorithms,The Algorithms 系列的 C 语言实现。

### C++

* [xtaci/algorithms](https://github.com/xtaci/algorithms) by @xtaci,使用 C++ 实现的数据结构和算法。
* [PetarV-/Algorithms](https://github.com/PetarV-/Algorithms) by @PetarV-,包含一些高级数据结构和算法。
* [ProAlgos-Cpp](https://github.com/ProAlgos/ProAlgos-Cpp) by @ProAlogs,C++ 实现的一些知名的算法。
* [algorithmica-org/implementations](https://github.com/algorithmica-org/implementations) by @algorithmica-org,一些算法的简洁实现。

### C#

* [classic-algorithms-c-sharp](https://github.com/shkolovy/classic-algorithms-c-sharp) by @shkolovy,使用 C# 实现的经典算法。
* [C-Sharp-Algorithms](https://github.com/aalhour/C-Sharp-Algorithms) by @aalhour,标准的数据结构和算法。
* [Advanced-Algorithms](https://github.com/justcoding121/Advanced-Algorithms) by @justcoding121,100+ 数据结构和算法的例子。

### Erlang

### Go

### Java

### JavaScript

### Lua

### Objective-C

### Python

### Ruby

### Scala

### Swift

### 语言无关(或多语言)

## 在线评审

可以从这些网站中练习你学习到的相关知识。

- [A2 Online Judge](https://a2oj.com/) - Online Judge and problem archive.
- [ACM-ICPC Live Archive](https://icpcarchive.ecs.baylor.edu/) - Hundreds of problems from previous ACM-ICPC Regionals and World Finals.

## 工具