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)的线性表. 堆 ...
随机推荐
- 并发编程之 Semaphore 源码分析
前言 并发 JUC 包提供了很多工具类,比如之前说的 CountDownLatch,CyclicBarrier ,今天说说这个 Semaphore--信号量,关于他的使用请查看往期文章并发编程之 线程 ...
- MVC母版页_Layout.cshtml
记得在asp.net时候,我们常会使用母版页MasterPage.而在MVC也有此功能,应用起来比MasterPage更加便捷. 在本次练习之前,所有MVC的练习均是创建单独的网页.Insus.NET ...
- MQ单一消息完整流程
public class QueueManger { private static string QueuePath = @".\private$\{0}"; /// <su ...
- VS比较好用的扩展插件总结
1.Indent Guides 绝对是必须的,有了这些辅助线,代码结构一目了然. 2.CodeMaid 整理与优化代码,并且可以清除空行.必备 把if语句块for语句块折叠 工具->扩展和更新, ...
- 调用百度api输出地址和城市查询出具体坐标系
在工作中遇到标题的内容,不知道如何写,后来我的领导写了一套代码,感觉很是厉害,特在此收藏,留作纪念 public static string GetResponse(string address, s ...
- [日常] Go语言圣经--作用域,基础数据类型,整型
go语言圣经-作用域 1.一个声明语句将程序中的实体和一个名字关联,比如一个函数或一个变量 2.一个变量的生命周期是指程序运行时变量存在的有效时间段;声明语句的作用域对应的是一个源代码的文本区域,它是 ...
- Android-加载图片避免OOM
http://blog.csdn.net/guolin_blog/article/details/9316683 高效加载大图片 我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有 ...
- POJ2227(优先队列)
The Wedding Juicer Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3440 Accepted: 155 ...
- POJ3261(SummerTrainingDay10-G 后缀数组)
Milk Patterns Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 15974 Accepted: 7041 Ca ...
- Java 取得文件名的后缀
作者QQ:1095737364 QQ群:123300273 欢迎加入! 文件上传的时候可能需要修改文件名,因此需要取得文件的后缀: String filename="123.t ...