![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
IIIlion
努力成为全栈攻城狮
展开
-
Javascript实现冒泡排序、插入排序、选择排序、归并排序
一、冒泡排序在开始学习排序算法的时候最先学习的都是冒泡排序,它是比较简单的一个算法,也是性能最差的。冒泡排序比较任何两个相邻的元素,如果第一个比第二个大,则交换他们的位置。元素一直向上移动直至正确的顺序,就犹如气泡一样向上冒,故叫冒泡排序。时间复杂度为O(n^2)。代码实现:let bubbleSort = (list) => { let arr = [...list] // ...原创 2019-02-28 22:10:58 · 129 阅读 · 0 评论 -
JavaScript数组去重的110种方法
数组去重在面试和工作中都是比较容易见到的问题,这几天在复习基础知识的时候,也顺便总结了一下常见的方法,和大家一起分享。如果大家还有其他什么方法还请评论大家一起讨论。如果有什么没有表达正确的地方还请大家斧正。一、使用双重for循环要比较数组中的每一个值我们都可以用双重for循环来解决,比如冒泡排序。同样也可以使用双重for循环来数组去重。function unique(arr) { for...原创 2019-03-05 21:53:36 · 106 阅读 · 0 评论 -
JavaScript实现链表
1、什么是链表?链表是物理存储单元上非连续的、非顺序的存储结构,不同于栈和队列。链表由一系列节点组成,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O...原创 2019-03-07 21:09:36 · 1952 阅读 · 1 评论 -
JavaScript实现一个队列
1、什么是队列?队列和栈有着明显的区别,队列是一种特殊的线性表有着先进先出的特点。它只允许在表头进行删除操作,在表尾进行添加操作。入队列示意图出队列示意图队列有许多的应用,比如javascript的事件循环机制,就是通过事件队列来存储异步操作的回调函数。比如逐层打印一颗树上的节点。像kafka,rabbitmq这类消息队列,其形式就是一种队列,消息生产者把消息放入队列中(尾部),消费...原创 2019-03-07 21:10:30 · 659 阅读 · 0 评论