01 2022 档案
⑫ 算法设计思想之“分而治之”
摘要:一、理论 1. 简介 分而治之是 算法设计 中的一种方法 它将一个问题 分 成多个和原问题相似的小问题, 递归解决 小问题,再将结果 合 并以解决原来的问题 2. 场景 2.1 归并排序 分:把数组从中间一分为二 解:递归地对两个子数组进行归并排序 合:合并有序子数组 2.2 快速排序 分:选基准, 阅读全文
posted @ 2022-01-28 15:36 pleaseAnswer 阅读(97) 评论(0) 推荐(0) 编辑
⑪ 进阶算法之“搜索算法”
摘要:一、理论 1. 排序和搜索简介 排序:把某个乱序的数组变成升序或降序数组 搜索:找出数组中某个元素的下标 1.1 js中的排序和搜索 js中的排序:sort() js中的搜索:indexOf() 1.2 排序算法 冒泡排序 选择排序 插入排序 归并排序 快速排序 1.3 搜索算法 顺序搜索 二分搜索 阅读全文
posted @ 2022-01-27 15:22 pleaseAnswer 阅读(47) 评论(0) 推荐(0) 编辑
⑩ 数据结构之“堆”
摘要:一、理论 1. 堆简介 堆是一种特殊的 完全二叉树 所有的节点都大于等于(最大堆)或小于等于(最小堆)它的子节点 1.1 js中的堆 js中通常用数组表示堆 左侧子节点的位置是 2*index+1 右侧子节点的位置是 2*index+2 父节点位置是(index-1)/2 1.2 应用 堆能高效、快 阅读全文
posted @ 2022-01-26 17:44 pleaseAnswer 阅读(115) 评论(0) 推荐(0) 编辑
⑨ 数据结构之“图”
摘要:一、理论 1. 图简介 图是 网络结构 的抽象模型,是一组由 边 连接的 节点 图可以表示任何二元关系 js中没有图,但可以用Object和Array构建图 图的表示法:邻接矩阵、邻接表、关联矩阵... 2. 图的表示法 2.1 邻接矩阵 2.2 邻接表 const graph = { 0: [1, 阅读全文
posted @ 2022-01-26 14:37 pleaseAnswer 阅读(65) 评论(0) 推荐(0) 编辑
⑧ 数据结构之“树”
摘要:一、理论 1. 树简介 树是一种 分层 数据的抽象模型 常见树:DOM树、级联选择、树形控件... js中没有树,但可以用Object和Array构建树 树的常用操作:深度/广度优先遍历、先中后序遍历 2. 深度/广度优先遍历 const tree = { val: 'a', children: [ 阅读全文
posted @ 2022-01-20 15:17 pleaseAnswer 阅读(74) 评论(0) 推荐(0) 编辑
⑦ 数据结构之“字典”
摘要:一、 理论 1. 字典简介 与集合类似,字典也是一种存储唯一值的数据结构,是以 键值对 的形式存储的 es6中有字典Map 1.1 增 const m = new Map() m.set('a', 'aa') m.set('b', 'bb') 1.2 删 m.delete('b') m.clear( 阅读全文
posted @ 2022-01-20 15:14 pleaseAnswer 阅读(205) 评论(0) 推荐(0) 编辑
⑥ 数据结构之“集合”
摘要:一、 理论 1. 集合简介 一种 无序且唯一 的数据结构 es6中有集合Set 集合的常用操作:去重、判断某元素是否在集合中、求交集 1.1 去重 // set const arr = [1, 1, 2, 2] const arr2 = [...new Set(arr)] 1.2 判断元素是否在集合 阅读全文
posted @ 2022-01-18 11:59 pleaseAnswer 阅读(84) 评论(0) 推荐(0) 编辑
⑤ 数据结构之“链表”
摘要:function ListNode(val, next) { this.val = (val undefined ? 0 : val) this.next = (next undefined ? null : next) } 一、 理论 1. 链表简介 多个元素组成的列表 元素存储不连续,用next 阅读全文
posted @ 2022-01-18 10:38 pleaseAnswer 阅读(61) 评论(0) 推荐(0) 编辑
④ 数据结构之“队列”
摘要:一、 理论 1. 队列简介 一个 先进先出 的数据结构 js中没有队列,但可以用Array实现队列的所有功能 // queue const queue = [] queue.push(1) queue.push(2) let item1 = queue.shift() let item2 = que 阅读全文
posted @ 2022-01-18 09:56 pleaseAnswer 阅读(15) 评论(0) 推荐(0) 编辑
③ 数据结构之“栈”
摘要:一、 理论 1. 栈简介 一个 先进后出 的数据结构 js中没有栈,但可以用Array实现队列的所有功能 // stack const stack = [] stack.push(1) stack.push(2) const item1 = stack.pop() const item2 = sta 阅读全文
posted @ 2022-01-18 09:55 pleaseAnswer 阅读(24) 评论(0) 推荐(0) 编辑
② 时间、空间复杂度计算
摘要:1. 时间复杂度计算 定性描述该算法的运行时间 O(1) let i = 0 i += 1 O(n) for(let i = 0; i < n; i++) { console.log(i) } O(1) + O(n) = O(n) let i = 0 i += 1 for(let i = 0; i 阅读全文
posted @ 2022-01-18 09:53 pleaseAnswer 阅读(23) 评论(0) 推荐(0) 编辑
① 简介
摘要:1. 学习路线 1.1 理论 重点关注:数据结构与算法、应用场景、js实现、时间/空间复杂度 1.2 刷题 刷题网站:leetcode 刷题类型:按类型刷题 重点关注:通用套路、时间/空间复杂度分析和优化 1.3 实战 前端与数据结构/算法的结合点 在工作中与数据结构/算法打交道 2. 数据结构与算 阅读全文
posted @ 2022-01-18 09:52 pleaseAnswer 阅读(20) 评论(0) 推荐(0) 编辑