![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
桃子阿哥
希望能成为一个很有钱的老板, 可以让我的员工有双休, 有六险一金, 朝九晚五, 偶尔加班, 每个人带着希望去工作
展开
-
JS数据结构与算法入门(六) - 数据结构之“字典”
1. 字典是什么? 与集合类似,字典也是一种存储唯一值的数据结构,但它是以键值对的形式来存储 ES6中有字典,名为 Map 字典的常用操作:键值对的增删改查 const m = new Map() // 增 m.set('a','aa') // 删 m.delete('a') 或 m.clear() // 改 就是再次赋值盖住 m.set('a','hh') // 查 m.get('a') ...原创 2020-09-03 22:37:12 · 93 阅读 · 0 评论 -
JS数据结构与算法入门(五) - 数据结构之“集合”
1. 集合是什么? 一种无序且唯一的数据结构 集合要求它的元素必须唯一, 不可重复 ES6中有集合, 叫Set 集合的常用操作: 去重, 判断某元素是否在集合中, 求交集 代码演示: // 去重 const arr = [1,1,2,2]; //const arr2 = new Set(arr); // 实例化一个set对象, 传入arr, // 会得到一个1和2组成的集合, 但是最终想要的是一个数组 // 所以需要把集合转化为数组 [...new Set(arr)] const arr2 = [..原创 2020-08-31 13:35:36 · 132 阅读 · 0 评论 -
JS数据结构与算法入门(四) - 数据结构之“链表”
1. 链表是什么? 多个元素组成的列表 元素存储不连续, 用next指针连在一起 数组: 增删非首尾元素时往往需要移动元素 链表: 增删非首尾元素, 不需要移动元素, 只需要改动next的指向即可 JS中没有链表, 但是可以用Object模拟链表 第一个操作 const a = { val:'a' }; const b = { val:'b' }; const c = { val:'c' }; const d = { val:'d' }; //目前四个存储都是独立的, 没关联 //下面把他们连在一起 a.原创 2020-08-22 23:17:28 · 132 阅读 · 0 评论 -
JS数据结构与算法入门(三) - 数据结构之“队列”
1. 队列是什么? 一个先进先出的数据结构 JS中没有队列这种数据结构, 但可以用数组实现队列的所有功能 const quene = []; quene.push(1); quene.push(2); const item1 = quene.shift(); const item2 = quene.shift(); 2. 什么场景下用队列? 需要先进先出的场景 比如: 食堂排队打饭(先进先出, 保证次序), JS异步中的任务队列(JS单线程, 无法同时处理异步中的并发任务), 算法题计算最近请求次数原创 2020-08-22 16:54:24 · 126 阅读 · 0 评论 -
JS数据结构与算法入门(二) - 数据结构之“栈”
1. 栈是什么? 一个后进先出的数据结构 JS中没有栈, 但可以用Array实现栈的所有功能 const stack = [] stack.push(1); stack.push(2); const itme1 = stack.pop(); const itme2 = stack.pop() 2. 什么场景下用栈? 需要后进先出的场景 比如: 十进制转二进制, 判断字符串的括号是否有效, 函数调用堆栈… 十进制转二进制 100011 后出来的余数反而要排到前面 把余数依次入栈, 然后再出栈, 就可原创 2020-08-18 18:24:01 · 225 阅读 · 1 评论 -
JS数据结构与算法入门(一) - 数据结构与算法简介
1. 数据结构与算法简介 数据结构: 计算机存储, 组织数据的方式, 就像锅碗瓢盆 算法: 一系列解决问题的清晰指令, 就像食谱 两者关系: 程序 = 数据结构 + 算法 将要学习的数据结构: 有序的: 栈 , 队列 , 链表 无序的: 集合 , 字典 树 , 堆 , 图 将要学习的算法: 链表: 遍历链表, 删除链表节点 树, 图 : 深度 / 广度优先遍历 数组: 冒泡 / 选择 / 插入 / 归并 / 快速排序 , 顺序 / 二分搜索 2. 时间复杂度和空间复杂度 时间复杂度: 一个函数,原创 2020-08-17 20:25:30 · 186 阅读 · 0 评论