![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 50
js数据结构与算法
xuxinhanan
这个作者很懒,什么都没留下…
展开
-
JS实现希尔排序、归并排序
希尔排序希尔排序的基本思想是:把序列按一定增量分组,然后对每个分组使用插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序是插入排序的改进版本。插入排序的问题在于当数组长度扩大时,后面的元素插入时要检查前面n个元素,非常影响排序性能。 function shellSort(arr) { let length = arr.length; let interval =原创 2021-05-26 09:24:44 · 106 阅读 · 0 评论 -
JS实现冒泡排序、选择排序、插入排序
冒泡排序冒泡排序的基本思想是:通过对待排序序列从前往后(从下标较小的元素开始),依次两两比较,若发现逆序则交换,使得较大值逐渐从前往后移动,就像气泡从水底下往上冒越来越大一样。冒泡过程演示冒泡排序思路通过对序列元素的两两比较,确定一个最大值交换到队尾重复上面的步骤,获得队尾前一个元素继续重复… function bubbleSort(array) { let length = array.length; for (原创 2021-05-24 18:53:24 · 120 阅读 · 0 评论 -
JavaScript实现单链表、双链表
链表链表是一种物理存储单元上非连续、非顺序的存储结构,链表上的节点的逻辑顺序是通过链表中的指针链接来实现的。链表上的结点包括两个部分:一个是存储数据的数据域一个是存储链接指向的指针域链表在插入操作时,最快可以达到O(1)的时间复杂度在得到要插入位置的结点的指针后,直接链接进去,然后将前后两个结点的数据交换,即可实现O(1)时间复杂度的速度。结构图:下面分析几种操作:查找通过分析链表的存储方式可知(按照指针依次链接n个对象), 查找元素只能挨个查找,直至找到原创 2021-05-21 10:38:40 · 110 阅读 · 0 评论 -
数组模拟队列、循环队列、双向循环队列的JavaScript实现
队列队列和栈一样,是一种操作受限制的线性表。不同的是,栈是一种后进后出的单端(尾端)处理的数据结构。而队列是一种先进先出的双端处理的数据结构。用数组模拟队列的关键是按照操作规则每次添加元素添加到数组的尾部,删除元素则删除数组的头部元素队列的问题在于,元素出队列后,该元素所在的空间闲置这对于空间有限的计算机来说,无疑是一种浪费为了解决这个问题,设计了循环队列循环队列为了实现空间的复用,关键是数组下标索引的循环利用首先设置 front 、rear 指针来表示数组下标索引为了解决循环原创 2021-05-18 21:25:16 · 189 阅读 · 0 评论