avatar
Articles
96
Tags
150
Categories
68

Home
Archives
Tags
Categories
伍新奎的博客空间
Home
Archives
Tags
Categories
ES6的JavaScript数据结构实现之分而治之,动态规划,贪心算法和回溯算法
Created2019-11-13|数据结构与算法分而治之,动态规划,贪心算法和回溯算法|ES6•数据结构•算法•分而治之•动态规划•贪心算法•回溯算法
目的:ES6标准下的JS算法的一些实现代码。(作为记录和启发) 内容:分而治之,动态规划,贪心算法,回溯算法及其著名算法问题。(未完成,待继续) 所有源码在我的Github上(如果觉得不错记得给星鼓励我哦):ES6的JavaScript算法思想实现之分而治之,动态规划,贪心算法和回溯算法(分别在divide and rule、dynamic programming、greedy、backtracking目录下) 一、基础算法1、分而治之 概念:分而治之算法可以分为三个部分。1、分解原问题为多个子问题(原问题的多个小实例);2、解决子问题,用返回解决子问题的方式的递归算法。递归算法的基本情形可以用来解决子问题;3、组合这些子问题的解决方式,得到原问题的解。 分而治之的二分搜索算法如下: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 ...
ES6的JavaScript数据结构实现之排序、搜索和随机算法
Created2019-11-05|数据结构与算法排序、搜索和随机算法|ES6•数据结构•算法•排序•搜索•随机算法
目的:ES6标准下的JS算法的一些实现代码。(作为记录和启发) 内容:排序、搜索和随机算法。冒泡排序,选择排序,插入排序,归并排序,快速排序,计数排序,桶排序,基数排序;顺序搜索,二分搜索,内插搜索;Fisher-Yates随机。(未完成,待继续) 所有源码在我的Github上(如果觉得不错记得给星鼓励我哦):ES6的JavaScript算法实现之排序、搜索和随机算法(分别在sorting、search、shuffle目录下) 一、基础算法1、排序1.1、冒泡排序概念:冒泡排序比较所有相邻的两个项,如果第一个比第二个大,则交换他们。元素项向上移动至正确的顺序,就好像气泡升至表面一样。其复杂度是O(n2)。 123456789101112131415161718192021222324252627282930313233343536373839404142434445const Compare = { LESS_THAN: -1, BIGGER_THAN: 1, EQUALS: 0};function defaultCompare(a, b) { ...
ES6的JavaScript数据结构实现之图
Created2019-10-29|数据结构与算法图|ES6•数据结构•算法•图
目的:ES6标准下的JS数据结构的一些实现代码。(作为记录和启发) 内容:图,图的遍历(广度优先搜索BFS,深度优先搜索DFS),最短路径算法,最小生成树算法。(未完成,待继续) 所有源码在我的Github上(如果觉得不错记得给星鼓励我哦):ES6的JavaScript数据结构实现之图 一、基础数据结构1、图(创建Graph类)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 ...
ES6的JavaScript数据结构实现之二叉堆和堆排序
Created2019-10-28|数据结构与算法二叉堆和堆排序|ES6•数据结构•算法•二叉堆•堆排序
目的:ES6标准下的JS数据结构的一些实现代码。(作为记录和启发) 内容:二叉堆和堆排序。(未完成,待继续) 所有源码在我的Github上(如果觉得不错记得给星鼓励我哦):ES6的JavaScript数据结构实现之二叉堆和堆排序 一、基础数据结构1、二叉堆(最小堆和最大堆;插入值(保持最小堆或最大堆结构);找到最大值或者最小值;移除最小堆的最小值(堆的根节点))基本概念:二叉堆是一种特殊的二叉树,其有两个特性:结构特性和堆特性。结构特性是指它是一颗完全的二叉树(树的每一层都有左侧和右侧子节点(除了最后一层的叶节点),并且最后一层的叶节点尽可能都是左侧子节点)。堆特性是指二叉堆不是最小堆就是最大堆(最小堆可以快速导出树的最小值,最大堆可以快速导出树的最大值),所有的节点都大于等于(最大堆)或者小于等于(最小堆)每个它的子节点。 1.1 最小堆123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 ...
ES6的JavaScript数据结构实现之树(二叉搜索树、AVL树、红黑树)
Created2019-10-21|数据结构与算法树(二叉搜索树、AVL树、红黑树)|ES6•数据结构•算法•二叉搜索树•AVL树•红黑树
目的:ES6标准下的JS数据结构的一些实现代码。(作为记录和启发) 内容:二叉搜索树。(未完成,待继续) 所有源码在我的Github上(如果觉得不错记得给星鼓励我哦):ES6的JavaScript数据结构实现之树(二叉搜索树、AVL树、红黑树) 一、基础数据结构1、二叉搜索树(插入元素;树的遍历:中序,先序和后序;搜索树中的值;移除元素。)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 ...
ES6的JavaScript数据结构实现之递归
Created2019-10-17|数据结构与算法递归|ES6•数据结构•算法•递归
目的:ES6标准下的JS数据结构的一些实现代码。(作为记录和启发) 内容:递归。(递归会使得操作树和图数据结构变得更简单。所以要理解递归。)(未完成,待继续) 所有源码在我的Github上(如果觉得不错记得给星鼓励我哦):ES6的JavaScript数据结构实现之递归 一、递归基础应用1、计算一个数的阶乘1.1迭代阶乘(循环实现)123456789101112function factorialIterative(number) { if (number < 0 ) { return undefined; } let total = 1; for (let n = number; n > 1; n--) { total = total * n ; } return total;}console.log(factorialIterative(5)); //120 1.2递归阶乘(使用递归时,要找到原始问题和子问题是什么。例如factorial(5)=5*factorial( ...
ES6的JavaScript数据结构实现之字典与散列表
Created2019-10-16|数据结构与算法字典与散列表|ES6•数据结构•算法•字典•散列表
目的:ES6标准下的JS数据结构的一些实现代码。(作为记录和启发) 内容:字典和散列表。(未完成,待继续) 所有源码在我的Github上(如果觉得不错记得给星鼓励我哦):ES6的JavaScript数据结构实现之字典与散列表 注:ES6也是新增加了Map类。此外还提供了WeakMap和WeakSet。基本上,Map和Set与其弱化版本之间仅有的区别是:WeakMap和WeakSet类没有entries、keys、values等方法;只能用对象作为键。而这两个弱化类是为了性能,可以使得JavaScript的垃圾回收器可以从中清除整个入口。此外,由于弱化类键只能是对象,所以不知道键就没办法找到值,这个性质可以用于封装ES6类的私有属性。 一、基础数据结构1、字典(以[键,值]对的形式存储数据,table[key]={key, value}) //注:由于JavaScript不是强类型的语言,不能保证键一定是字符串,所以需要把所有键名的传入的对象转换为字符串,使得Dictionary类中搜索和获取值更简单。 1234567891011121314151617 ...
ES6的JavaScript数据结构实现之集合
Created2019-10-12|数据结构与算法集合|ES6•数据结构•算法•集合
目的:ES6标准下的JS数据结构的一些实现代码。(作为记录和启发) 内容:集合。(未完成,待继续) 所有源码在我的Github上(如果觉得不错记得给星鼓励我哦):ES6的JavaScript数据结构实现之集合 注:Set类在ES6中已经提供了原生的Set结构。 一、基础数据结构1、集合(非ES6自带的原生Set)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119class Set { constructor() { this.items = {}; } has(element) & ...
ES6的JavaScript数据结构实现之链表
Created2019-10-09|数据结构与算法链表|ES6•数据结构•算法•链表
目的:ES6标准下的JS数据结构的一些实现代码。(作为记录和启发) 内容:链表和双向链表,循环链表,有序链表。(未完成,待继续) 所有源码在我的Github上(如果觉得不错记得给星鼓励我哦):ES6的JavaScript数据结构实现之链表 一、基础数据结构1、链表123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147class Node {constructor(elem ...
ES6的JavaScript数据结构实现之队列
Created2019-09-25|数据结构与算法队列|ES6•数据结构•算法•队列
目的:ES6标准下的JS数据结构的一些实现代码。(作为记录和启发) 内容:队列和双端队列。(未完成,待继续) 所有源码在我的Github上(如果觉得不错记得给星鼓励我哦):ES6的JavaScript数据结构实现之队列 一、基础数据结构1、队列(FIFO)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768class Queue{constructor(){this.count = 0;this.lowestCount = 0;this.items ={};}enqueue(element) {this.items[this.count] = element;this.count++;}dequeue() {if (this.isEmpty()) {return undefined;} ...
1…8910
avatar
伍新奎
前端开发工程师
Articles
96
Tags
150
Categories
68
Follow Me
Recent Post
nestjs学习-5种http数据传输方式2023-12-05
nestjs学习-快速掌握 Nest CLI2023-11-23
前端工程化- webpack | 项目打包webpack优化2023-11-15
单元测试-jest搭建和使用2023-11-01
nodejs-PM2搭建和使用2023-10-20
Categories
  • React2
  • VScode 配置1
  • antd1
  • backend1
  • chrome1
  • git1
  • hive1
  • mysql1
Tags
队列 路由模块封装 项目 jest 语法 运行配置 红黑树 vue CLI3 vue CLI2 二叉搜索树 静态文件托管 JavaScript Nest CLI AVL树 package.json 管道流 this绑定 POST GET Vuex 字典 angular 链表 http CommonJs Visual Studio Code antd 监控,nodejs chrome 组件化 web cnpm SnowPack WEB服务器 网站 前端工程化 pdf table EJS模板引擎 HTTP 模块
©2019 - 2023 By 伍新奎