我们的目标是打造全网知识讲解最全面、最详细、最易懂的算法教程。
并分享更多学习方法论,牢固掌握,避免遗忘,内化能力。
项目编写中。
![](https://raw.githubusercontent.com/openwings/algorithms-ecmascript/main/./_imgs/advantage.jpg)
- 为什么要学习算法?
- 学习能力方法论?
- 编程能力方法论?
序号 |
名称 |
En |
进度 |
1 |
排序简介 |
Sorting |
100% |
2 |
冒泡排序 |
Bubble sort |
100% |
3 |
插入排序 |
Insertion sort |
100% |
4 |
选择排序 |
Selection sort |
100% |
5 |
归并排序 |
Merge sort |
100% |
6 |
快速排序 |
Quick sort |
100% |
7 |
希尔排序 |
Shell sort |
100% |
8 |
堆排序 |
Heap sort |
|
9 |
计数排序 |
Counting sort |
|
10 |
基数排序 |
Radix sort |
|
序号 |
名称 |
En |
进度 |
1 |
阶乘 |
Factorial |
90% |
2 |
斐波那契数 |
Fibonacci |
90% |
3 |
最大公约数 |
Greatest Common Divisor |
90% |
4 |
最小公倍数 |
Least Common Multiple |
90% |
5 |
素数 |
Prime |
90% |
6 |
幂 |
Power |
50% |
序号 |
名称 |
En |
进度 |
1 |
线性搜索 |
Linear Search |
50% |
2 |
跳转搜索 |
Jump Search |
50% |
3 |
二分查找 |
Binary Search |
50% |
4 |
差值搜索 |
Interpolation Search |
50% |
序号 |
名称 |
En |
进度 |
1 |
回文 |
Palindrome |
|
2 |
汉明距离 |
Hamming Distance |
|
3 |
来温斯坦距离 |
Levenshtein distance |
|
4 |
KMP 算法 |
KMP Algorithm |
|
5 |
字符串快速查找算法 |
Z Algorithm |
|
6 |
Rabin Karp 算法 |
Rabin Karp Algorithm |
|
7 |
最长公共子串 |
Longest Common Substring |
|
8 |
正则表达式匹配 |
Regular Expression Matching |
|
序号 |
名称 |
En |
进度 |
1 |
笛卡尔积 |
Cartesian Product |
|
2 |
洗牌算法 |
Fisher–Yates Shuffle |
|
3 |
幂集 |
Power Set |
|
4 |
排列 |
Permutations |
|
5 |
组合 |
Combinations |
|
6 |
最长公共子序列 |
Longest Common Subsequence |
|
7 |
最长递增子序列 |
Longest Increasing Subsequence |
|
8 |
最短公共父序列 |
Shortest Common Supersequence |
|
9 |
背包问题 |
Knapsack Problem |
|
10 |
最大子数列问题 |
Maximum Subarray |
|
11 |
组合求和 |
Combination Sum |
|
序号 |
名称 |
En |
Desciption |
进度 |
1 |
链表基础 |
LinkedList |
|
0 |
2 |
中间值 |
Middle |
The middle node |
70% |
3 |
交换 |
Swap |
Swap every two adjacent nodes |
70% |
4 |
环 |
Cycle |
The node where the cycle begins |
70% |
5 |
移除 |
Remove |
Remove the nth node from the end of the list |
70% |
6 |
翻转 |
Reverse |
Reverse a list from position m to n |
70% |
7 |
排序 |
Sort |
Sort in ascending order |
70% |
8 |
分割 |
Partition |
All nodes less than x come before nodes greater than or equal to x |
70% |
9 |
交点 |
Intersection |
AThe intersection of two linked lists begins |
70% |
10 |
回文 |
Palindrome |
Palindrome judgment |
70% |
11 |
复制 |
Copy |
Each node contains an additional random pointer |
70% |
序号 |
名称 |
En |
Description |
进度 |
1 |
二叉树基础 |
|
|
0 |
2 |
遍历 |
Traversal |
Inorder & Preorder & Postorder & LevelOrder |
70% |
3 |
深度 |
Depth |
Maximum Depth & Minimum Depth |
70% |
4 |
构造 |
Construct |
Construct Binary Tree from Traversal |
70% |
5 |
视图 |
View |
Right Side View & Left Side View |
70% |
6 |
反转 |
Invert |
Invert left and right |
70% |
7 |
相同 |
Same |
Same judgment |
70% |
8 |
对称 |
Symmetric |
Symmetric judgment |
70% |
9 |
二叉搜索树 |
Binary Search Tree |
BST judgment |
70% |
10 |
高度平衡树 |
Height Balanced |
Height Balanced judgment |
70% |
11 |
路经总和 |
Path Sum |
All root-to-leaf paths where each path's sum equals targetSum |
70% |
- 深度优先搜索 (DFS)
- 广度优先搜索 (BFS)
- 克鲁斯克尔演算法 - 寻找加权无向图的最小生成树 (MST)
- 戴克斯特拉算法 - 找到图中所有顶点的最短路径
- 贝尔曼-福特算法 - 找到图中所有顶点的最短路径
- 弗洛伊德算法 - 找到所有顶点对 之间的最短路径
- 判圈算法 - 对于有向图和无向图 (基于 DFS 和不相交集的版本)
- 普林演算法 - 寻找加权无向图的最小生成树 (MST)
- 拓扑排序 - DFS 方法
- 关节点 - Tarjan 算法 (基于 DFS)
- 桥 - 基于 DFS 的算法
- 欧拉回径与一笔画问题 - Fleury 的算法 - 一次访问每个边
- 哈密顿图 - 恰好访问每个顶点一次
- 强连通分量 - Kosaraju 算法
- 旅行推销员问题 - 尽可能以最短的路线访问每个城市并返回原始城市
If you think that these can be improved in anyway, please do suggest.
- Open pull request with improvements
- Discuss ideas in issues
![License: CC BY-NC-ND 3.0](https://camo.githubusercontent.com/737aad0c1bf5098da05669813f8cd78959bf684cbee9c91d33fc1e01336a36a0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d434325323042592d2d4e432d2d4e44253230332e302d6c69676874677265792e737667)