![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
文章平均质量分 92
MrDeng_web2018
这个作者很懒,什么都没留下…
展开
-
深入理解js的事件循环机制(event Loop)
引言:作为前端开发人员,JavaScript对于我们来说并不陌生,在日常开发中我们经常会遇到这样的情况,给定几行代码,需要知道其输出内容和顺序,我们可以直接在浏览器中运行,控制台查看运行结果,但如果是在面试求职中呢,我们显然不能打开电脑运行一下,所以理解JavaScript执行机制就显得尤为重要了。1.关于javascriptjavascript是一门单线程语言,简而言之呢,就是按照语句出现的顺序执行的,在最新的HTML5中提到了web-worker,但JavaScript是单线程这一核心仍未改变,所原创 2021-03-03 10:45:31 · 670 阅读 · 1 评论 -
前端常用算法----时间复杂度为O(nlogN)的排序算法
时间复杂度和空间复杂度时间维度:是指执行当前算法所花费的时间,我们通常用「时间复杂度」来描述。空间复杂度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。时间维度O(n)for(var i = 0; i < n; i++) { // .....}O(logN)while(i < n) { i = i * 2; // ...}O(n²)for(var i = 0; i < n; i++) {原创 2020-10-31 17:08:02 · 972 阅读 · 0 评论 -
时间复杂度为O(n²)的排序算法--(冒泡排序,插入排序)
前端排序算法冒泡排序时间复杂度: O(n²)空间复杂度: O(1)class SortArr { constructor(arr) { this.arr = arr; } sort() { let len = this.getLength() for (var i = 0; i < len; i++) { for (var j = 0; j < len - i; j++) {原创 2020-10-31 16:24:49 · 237 阅读 · 0 评论 -
前端常用算法---堆排序-最大堆的添加与删除
@前端常用算法—堆排序-最大堆的添加与删除堆排序的实现流程堆排序时间复杂度: O(nlogN)空间复杂度: O(n)我们以面向对象的方式对堆排序进行分析与实现// 最大堆的添加 删除 排序function swap(arr, index1, index2) { var temp = arr[index1]; arr[index1] = arr[index2]; arr[index2] = temp;}class Heap { constructor()原创 2020-10-31 10:40:59 · 366 阅读 · 0 评论 -
(队列的实现与应用)——给定一个整数流和一个窗口的大小,根据滑动窗口的大小,计算其所有整数的移动平均值。
给定一个整数流和一个窗口的大小,根据滑动窗口的大小,计算其所有整数的移动平均值。例如:MovingAverage m = new MovingAverage(3); m.next(1)=1; m.next(10)=(1+10)/2; m.next(3)=(1+10+3)/3m.next(5)=(10+3+5)/3;分析测试用例窗口的大小固定调用next添加数字并计算平均值超过窗口的大小,最先添加的数字需要先移除(队列的特点:先进先出)解题思路使用队列来添加数字通过原创 2020-09-06 22:27:35 · 484 阅读 · 2 评论 -
栈的应用——JS实现括号匹配问题
(堆栈的应用)JS实现括号匹配问题1.首先要有一个运行js的编译环境,然后有个编辑器,本人使用的是VsCode,看个人喜好,能运行js代码就行。2,栈遵循 “先进后出” 的原则(如果对栈不了解的可以自行百度,这里就不详细说明了)。示例:给定一个只包括“{”,“}”,“(”“)”,“[" ,"]’'的字符串,判断字符串是否有效。有效字符串需要满足: 1,左括号必须用相同类型的右括号闭合 2,左括号必须以正确的顺序闭合(不得出现嵌套)注意空字符串可被认为是有效的字符串;示例原创 2020-09-06 00:16:08 · 1660 阅读 · 0 评论