# play-with-algorithm **Repository Path**: liu-jing-jing/play-with-algorithm ## Basic Information - **Project Name**: play-with-algorithm - **Description**: JS 实现的基础算法 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-07-13 - **Last Updated**: 2023-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 数据结构与算法 代码运行环境: macOS Big Sur 下node 14.0.0 | 算法学习目录 | | | :--- | :---: | | **排序基础(3种)**| | | 选择排序-Selection Sort | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/01-Sorting-Basic/01-Selection-Sort/main.js) | | 使用模板(泛型)编写算法 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/01-Sorting-Basic/02-Selection-Sort-Using-Template/main.js) | | 随机生成算法测试用例 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/01-Sorting-Basic/03-Selection-Sort-Generate-Test-Cases/main.js) | | 测试算法的性能 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/01-Sorting-Basic/04-Selection-Sort-Detect-Performance/main.js) | | 插入排序法-Insertion Sort | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/01-Sorting-Basic/05-Insertion-Sort/main.js) | | 插入排序法的改进 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/01-Sorting-Basic/06-Insertion-Sort-Advance/main.js) | | 冒泡排序法及其优化-Bubble Sort | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/01-Sorting-Basic/07-Bubble-Sort/main.js) | | **高级排序算法(3种)**| | | 希尔排序法-Shell Sort | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/02-Sorting-Advance/01-Shell-Sort/main.js) | | 归并排序法的实现与优化 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/02-Sorting-Advance/02-Merge-Sort/main.js) | | 自底向上的归并排序算法 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/02-Sorting-Advance/03-Merge-Sort-Bottom-Up/main.js) | | 快速排序法 - Quick Sort | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/02-Sorting-Advance/04-Quick-Sort/main.js) | | 随机化快速排序法 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/02-Sorting-Advance/05-Quick-Sort-Deal-With-Nearly-Ordered-Array/main.js) | | 双路快速排序法 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/02-Sorting-Advance/06-Quick-Sort-Deal-With-Identical-Keys/main.js) | | 三路快速排序法 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/02-Sorting-Advance/07-Quick-Sort-Three-Ways/main.js) | | 归并排序和快速排序的衍生问题 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/02-Sorting-Advance/08-Derivative-problem/main.js) | | **堆**| | | 最大堆 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/03-Heap/01-Max-Heap-Class-Basic/main.js) | | 堆排序 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/03-Heap/02-Heap-Sort/main.js) | | 索引堆-优先队列 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/03-Heap/05-Index-Heap/main.js) | | 最小堆 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/03-Heap/06-Min-Heap/main.js) | | **树**| | | 二分查找法 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/04-Binary-Search-Tree/01-Binary-Search/main.js) | | BST的实现 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/04-Binary-Search-Tree/02-Binary-Search-Tree-Basics/main.js) | | **并查集**| | | Quick Find | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/05-Union-Find/01-Quick-Find/main.js) | | Quick Union | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/05-Union-Find/02-Quick-Union/main.js) | | 基于size的优化 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/05-Union-Find/03-Optimize-by-Size/main.js) | | 基于rank的优化 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/05-Union-Find/04-Optimize-by-Rank/main.js) | | Path Compression | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/05-Union-Find/05-Path-Compression/main.js) | | **图**| | | 图的表示(较完整) | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/06-Graph-Basics/01-Graph-Representation/denseGraph.js) | | **最小生成树**| | | 有权图的表示 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/07-Minimum-Span-Trees/01-Weighted-Graph/main.js) | | Lazy Prim | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/07-Minimum-Span-Trees/02-Lazy-Prim/main.js) | | Prim算法 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/07-Minimum-Span-Trees/03-Prim/main.js) | | Kruskal算法 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/07-Minimum-Span-Trees/04-Kruskal/main.js) | | **最小生成树**| | | Dijkstra算法的实现 | [js源码](https://github.com/sinner77/play-with-algorithm/blob/master/08-Shortest-Path/Dijkstra/main.js) |