javascript描述数据结构与算法(改自imooc)
javascript描述数据结构与算法
起因
作为一个前端程序员常用的数据结构和算法是要懂得怎么去实现的。一直以来想学算法,买了书却一直看不下去。直到前一个月面试挂在基础算法的问题,就决定每天学一点算法。正好看到imooc的算法实战教程,主要是我看算法书很懵逼才找了视频来学习,每3,4天一章,一边看视频一边过一遍书,就这样啃完了。
如果你跟我一样看书看不下去,强烈推荐你看视频。视频里是用c++实现的,但是讲师在课程里用各种动画很容易就看懂了。
另外,基础算法能引申出来很多高级算法,至于你还想再深入学习,就得靠自己了。
js实现算法目录
运行环境:我是用node来运行的,你也可以直接用浏览器。
| 算法学习目录 | |
|---|---|
| 排序基础(3种) | |
| 选择排序-Selection Sort | js源码 |
| 使用模板(泛型)编写算法 | js源码 |
| 随机生成算法测试用例 | js源码 |
| 测试算法的性能 | js源码 |
| 插入排序法-Insertion Sort | js源码 |
| 插入排序法的改进 | js源码 |
| 冒泡排序法及其优化-Bubble Sort | js源码 |
| 高级排序算法(3种) | |
| 希尔排序法-Shell Sort | js源码 |
| 归并排序法的实现与优化 | js源码 |
| 自底向上的归并排序算法 | js源码 |
| 快速排序法 - Quick Sort | js源码 |
| 随机化快速排序法 | js源码 |
| 双路快速排序法 | js源码 |
| 三路快速排序法 | js源码 |
| 归并排序和快速排序的衍生问题 | js源码 |
| 堆 | |
| 最大堆 | js源码 |
| 堆排序 | js源码 |
| 索引堆-优先队列 | js源码 |
| 最小堆 | js源码 |
| 树 | |
| 二分查找法 | js源码 |
| BST的实现 | js源码 |
| 并查集 | |
| Quick Find | js源码 |
| Quick Union | js源码 |
| 基于size的优化 | js源码 |
| 基于rank的优化 | js源码 |
| Path Compression | js源码 |
| 图 | |
| 图的表示(较完整) | js源码 |
| 最小生成树 | |
| 有权图的表示 | js源码 |
| Lazy Prim | js源码 |
| Prim算法 | js源码 |
| Kruskal算法 | js源码 |
| 最小生成树 | |
| Dijkstra算法的实现 | js源码 |
大家在实现这些算法的时候目录不用分得这么细,我是看完了整套视频才知道的。
算法可能实现的有些生硬或不优雅,然后我就结合<<数据结构与算法JavaScript>>一书给出另外一些实现方法。小弟渣渣水平,还望大佬莫喷呀。
本文转载于:猿2048➼https://www.mk2048.com/blog/blog.php?id=ha01bic010j

浙公网安备 33010602011771号