Learn Algorithms With Javascript - 基于 Js 进行算法学习
基于 javascript 学习并实现常用的经典算法,欢迎对算法和数学感兴趣的 Js 开发者参与,一起学习共同进步。
算法实现
- 排序
- 查找
- 顺序查找 search/sequence-search.js
- 二分查找实现 search/binary-search.js
- 插值查找 search/insert-value-search.js
- 斐波那契查找 search/fibonacci-search.js
- 哈希查找 search/hash-search.js
- 数据结构 DataStructures
- 树
- 图
算法分析
图文形式整理归纳该部分内容,需花费大量的时间和精力,且网上关于算法分析的高质量资料也非常多。因此,暂不对此节内容进行整理,可能的话,以后再不定期抽时间做相关补充。
数学基础
我们不一定有精力深入透彻的研究下列全部内容,但在算法分析开始前,概览下述内容绝对是非常有益的。
- 知识大纲
- 求和
- 求和公式及其性质
- 确定求和时间的界
- 离散数学内容
- 集合
- 关系
- 函数
- 图
- 树
- 计数与概率
- 计数
- 概率
- 离散随机变量
- 几何分布与二项分布
- 二项分布的尾部
- 矩阵
- 矩阵与矩阵运算
- 矩阵的基本性质
- 求和
- Javascript Math Object
- 常用数学术语中英文对照表
计划清单
- 最大子数组问题
- 散列表
- 广度优先搜索
总能找到最近的node
图由节点和边组成,node and edge - 狄克斯特拉算法
- 贝尔曼·福德算法
- 贪婪算法
- 旅行商问题
- NP完全问题
- 动态规划
- 01背包
- 最长公共子串
- 最长公共子序列
- 费曼算法
- K最近邻算法
- 朴素贝叶斯分类器
- 二叉树、 B树,红黑树,堆,伸展树
- 反向索引
- 傅里叶变换
- MapReduce
- Apache Hadoop
- Simhash
- Diffie-Hellman
参考资料
1. Website
- Better Explained —— Learn math without memorization. No cramming.
- Commoncraft —— Our Product is Explanation.
- GeeksforGeeks —— A computer science portal for geeks.
2. Book
- 算法图解 —— 像小说一样有趣的算法入门书
- Algorithms —— 中文版书名:《算法概论》,将任何具有初等数学基础的人引入算法应用与研究殿堂的引路石。
- Algorithms Fourth Edition —— 算法第四版 algs4.cs.princeton.edu
- Introduction to Algorithms —— Thomas H.Cormen Charles E.Leiserson Ronald L.Rivest Clifford Stein
写在后面
关于本文如果您有任何建议或疑问请在下面留言交流,也可通过 Web前端高级工程师 群进行线上沟通。
Learn Algorithms With Javascript - 基于 Js 进行算法学习的更多相关文章
- JS做深度学习1——偶然发现与入门
JS做深度学习1--偶然发现与入门 不久前,我初次涉猎了Node.js,并且使用它开发了毕业设计的WEB模块,然后通过在Node中调用系统命令执行Python文件方式实现了深度学习功能模块的对接,Py ...
- JavaScript基于时间的动画算法
转自:https://segmentfault.com/a/1190000002416071 前言 前段时间无聊或有聊地做了几个移动端的HTML5游戏.放在不同的移动端平台上进行测试后有了诡异的发现, ...
- 常见排序算法基于JS的实现
一:冒泡排序 1. 原理 a. 从头开始比较相邻的两个待排序元素,如果前面元素大于后面元素,就将二个元素位置互换 b. 这样对序列的第0个元素到n-1个元素进行一次遍历后,最大的一个元素就“沉”到序列 ...
- 基于JS实现归并排序算法
/*********************************************JS归并排序************************************************ ...
- 阅读:重新介绍 JavaScript(JS教程)
这篇文章是记录自己阅读重新介绍 JavaScript(JS 教程)的记录和个人体会 在线调试代码工具:https://codepen.io/pen 引言 分歧根源:名字Javascript和Java有 ...
- [翻译]Review——Learn these core JavaScript concepts in just a few minutes
Learn these core JavaScript concepts in just a few minutes(只需几分钟即可学习这些核心JavaScript概念) 原文地址:https://m ...
- 总结下js排序算法和乱序算法
其实本人最怕的就是算法,大学算法课就感觉老师在讲天书,而且对于前端来说,算法在实际的应用中实在是很有限.毕竟算法要依靠大量的数据为基础才能发挥出算法的效率,就浏览器那性能,......是吧,退一万步说 ...
- Breach - HTML5 时代,基于 JS 编写的浏览器
Breach 是一款属于 HTML5 时代的开源浏览器项目,,完全用 Javascript 编写的.免费.模块化.易于扩展.这个浏览器中的一切都是模块,Web 应用程序在其自己的进程运行.通过选择合适 ...
- javascript实现数据结构与算法系列:栈 -- 顺序存储表示和链式表示及示例
栈(Stack)是限定仅在表尾进行插入或删除操作的线性表.表尾为栈顶(top),表头为栈底(bottom),不含元素的空表为空栈. 栈又称为后进先出(last in first out)的线性表. 堆 ...
随机推荐
- c# winform 获取当前程序运行根目录
1 // 获取程序的基目录. 2 System.AppDomain.CurrentDomain.BaseDirectory 3 4 5 // 获取模块的完整路径. 6 System.Diagnosti ...
- 【4】 .net MVC使用Session验证用户登录
用最简单的Session方式记录用户登录状态 1.添加DefaultController控制器,重写OnActionExecuting方法,每次访问控制器前触发 public class Defaul ...
- Redis——基础数据结构
Redis提供了5种基础数据结构,分别是String,list,set,hash和zset. 1.String Redis所有的键都是String.Redis的String是动态字符串,内部结构类似J ...
- MongoDB的web可视化管理工具
现在许多应用都使用MongoDB存储大量的业务数据,MongoDB基于文档式的存储,在大数据行业的应用还是很普遍的.MongoDB的客户端工具也很多,基于web的却不多,国产的就更少了,下面介绍的是一 ...
- python基础技巧综合训练题2
1,判断一个字符串中的每一个字母是否都在另一个字符串中,可以利用集合的特性来解,集合的元素如果存在,再次更新(update) 是添加不进集合的,那么集合的长度还是跟原来一样,如果添加进去,集合长度就会 ...
- HDU1814(2-SAT)
Peaceful Commission Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- HDU3062(2-SAT)
Party Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- POJ2236(KB5-A)
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 28617 Accepted: 118 ...
- DRF序列化
1. 安装 pip install djangoframework 2. app注册 rest_framework INSTALLED_APPS = [ 'django.contrib.admin', ...
- 鼠标滚轮更改transform的值(vue-scroller在PC端的上下滑动)
目前上拉刷新,下拉加载,以及区域回弹的组件,绝大多数都是通过transform去实现的.在移动端效果很好,但是PC端使用鼠标拖拽的方式,查看下文首先不符合逻辑,其次容易点进其他页面. 起初,项目的初衷 ...