本系列主要是讲解JavaScript中的数据结构及在实际项目中遇到的地方 JavaScript中的数据结构及实战系列(1):队列 JavaScript中的数据结构及实战系列(2):栈…
开题 张三丰教无忌太极剑法: 还记得吗? 全都记得. 现在呢? 已经忘却了一小半. 啊,已经忘了一大半. 不坏不坏,忘得真快,那么现在呢? 已经全都忘了,忘得干干净净. 好了,你上吧. 长时间写前端代码,将自己以前的积累都忘得一干二净,所以开了一个关于JS的数据结构系列,在业务型程序员的基础上,也要实时的优化自己的代码,让自己的代码有思想是每个程序员最自豪的事情. 本文目录 本文目录 队列介绍: JavaScript实现队列: 队列的实践: 队列介绍: 相信任何有些编程基础的人都对队列不算陌生,…
开题: 不冒任何险,什么都不做,什么也不会有,什么也不是. 本文目录 栈介绍: JavaScript实现栈: 栈的应用: 栈介绍: 和队列一样,栈也是一种表结构,但是和队列的"先进先出"不同的是栈是"先进后出"的一种数据结构,它更像我们生活中向箱子里放东西,后放的在上面,最先被我们取出来. 由于栈是"先进后出"的结构,所以我们基本上都是对栈顶元素的操作,任何不在栈顶的元素都不能被访问,为了得到栈底的元素,我们需要删除栈顶的元素. 由以上可知,&q…
宏任务和微任务的队列入门知识,可以参考之前的文章: JavaScript的事件循环机制 宏任务和微任务在前端面试中,被经常提及到,包括口头和笔试题 async && await概念 async 使用async关键字声明的函数,是AsyncFunction构造函数的实例,在async函数体内,可以使用await接收promise实例 async和await关键字,在开发过程中,可以简洁地去做一些异步操作. await await操作符接受一个Promise 对象,并且只能和异步函数async…
Javascript中的关键字   abstract     continue      finally      instanceof      private       this boolean      default      float        int            public        throw break        do           for          interface      return        typeof byte    …
数据结构 栈:一种遵从先进后出 (LIFO) 原则的有序集合:新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端为栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底. 队列:与上相反,一种遵循先进先出 (FIFO / First In First Out) 原则的一组有序的项:队列在尾部添加新元素,并从头部移除元素.最新添加的元素必须排在队列的末尾. 链表:存储有序的元素集合,但不同于数组,链表中的元素在内存中并不是连续放置的:每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(指针…
1 队列的基本概念 队列(Queue):也是运算受限的线性表.是一种先进先出(First In First Out ,简称FIFO)的线性表.只允许在表的一端进行插入,而在另一端进行删除. 队首(front) :允许进行删除的一端称为队首. 队尾(rear) :允许进行插入的一端称为队尾. 例如:排队购物.操作系统中的作业排队.先进入队列的成员总是先离开队列. 队列中没有元素时称为空队列.在空队列中依次加入元素a1, a2, …, an之后,a1是队首元素,an是队尾元素.显然退出队列的次序也只…
序 最近花了比较多的时间来学习前端的知识,在这个期间也看到了很多的优秀的文章,其中Aaron可能在这个算法方面算是我的启蒙,在此衷心感谢Aaron的付出和奉献,同时自己也会坚定的走前人这种无私奉献的分享精神,为编程爱好者提供一些优秀的文章 JavaScript中的栈实现 要说到栈,这里我们先将一下什么是栈,栈就是一个在计算机中特殊的数据列表,栈的特点是先进的数据最后才会被弹出来 在JavaScript中提供了可操作的方法, 入栈push,出栈pop,最先进入要最后才会弹出 栈的实现原理图大致如下…
复杂度分析 大O复杂度表示法 常见的有O(1), O(n), O(logn), O(nlogn) 时间复杂度除了大O表示法外,还有以下情况 最好情况时间复杂度 最坏情况时间复杂度 平均情况时间复杂度 均摊时间复杂度 代码执行效率分析 大多数情况下,代码执行的效率可以采用时间复杂度分析,但是大O表示法通常会省略常数. 但是在工业级实现中,真正的执行效率通常会考虑多方面: 时间复杂度 空间复杂度 缓存友好 指令条数 性能退化(如哈希冲突解决方案等) 等 以上是理论层级,对于前端开发来说,如果你开发的…
笔者在学习数据结构与算法时,尝试着将排序算法以动画的形式呈现出来更加方便理解记忆,本文配合Demo 在Object-C中学习数据结构与算法之排序算法阅读更佳. 目录 选择排序 冒泡排序 插入排序 快速排序 双路快速排序 三路快速排序 堆排序 总结与收获 参考与阅读 选择排序 选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度.所以用到它的时候,数据规模越小越好.唯一的好处可能就是不占用额外的内存空间了吧. 1.算法步骤 首先在未排序序列中找到最小(大)元素,存放到排…