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