算法
文章平均质量分 64
遥岑.
谨以遥岑敬钱塘
展开
-
js实现二叉树遍历
js实现二叉树遍历原创 2022-08-28 10:27:55 · 504 阅读 · 0 评论 -
JavaScript实现堆
目录优先级队列堆思路实现优先级队列其实就是一个披着队列外衣的堆,优先级队列对外接口只是从队头取元素,从队尾添加元素,再无其他取元素的方式,看起来就像一个队列。在优先队列中,每个元素都拥有一个优先级属性,优先级高的排在前面,优先级低的排在后面,同样优先级高的元素可以享受优先出队。优先级队列内部元素是自动根据元素的权值排序,在逻辑上可以看作一个堆,可以用数组实现。实现一个优先队列有很多种不同的方式,比如有序链表就可以作为优先队列,入队时将元素插入合适位置,出队删除链表头并返回但是堆这种实现方式更契原创 2022-05-05 09:18:43 · 370 阅读 · 0 评论 -
JavaScript实现快速排序
目录快速排序快速排序快速排序:快速排序几乎可以说是目前所有排序算法中最快的一种,可以看作是冒泡排序的升级版,它的思想是分而治之。当然,没有任何一种算法是在任意情况下都是最优的,比如希尔排序在某些情况下可能优于快速排序,但是大多数情况下,快速排序还是比较好的选择基本思想:图例:图例实现:输出结果:...原创 2021-11-25 17:53:07 · 382 阅读 · 0 评论 -
JavaScript实现插入排序和希尔排序
插入排序标题原创 2021-11-22 10:22:07 · 224 阅读 · 0 评论 -
JavaScript实现栈与队列的操作
目录栈队列栈ES5写法function Stack() { //用数组模拟栈 var stack = []; //入栈 this.push = function (element) { stack.push(element); } //出栈 this.pop = function () { stack.pop(); } //查看栈顶元素 this.peek = function (原创 2021-10-04 17:35:53 · 198 阅读 · 0 评论 -
JavaScript链表的实现
目录链表链表概念单链表的实现双向链表的实现链表链表概念链表:数据的一种存储结构,一个链表包含若干个结点,每个结点至少包含一个数据域和一个指针域,指针域指向下一个结点。结点:数据元素的存储映像,由存放数据元素的数据域和存放后继结点地址的指针域组成。特点:用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。这就意味着,这些数据元素可以存在内存未被占用的任意位置。头结点、头指针、首元结点的区别:头结点: 在单链表第一个元素结点之前设置的一个结点, 数据域可以不存原创 2021-06-11 16:39:03 · 231 阅读 · 17 评论 -
JavaScript实现排序算法及查找算法
目录排序算法冒泡排序选择排序查找算法顺序查找折半查找法排序算法冒泡排序冒泡排序(Bubble Sort):是一种最基础的交换排序。基本思想:从无序序列头部开始,数组元素依次进行两两比较,若两个元素存在大小关系就进行交换,直到数组有序。核心:通过两两比较交换位置,每一趟循环都将选出剩余无序列表里最大(小)的数据元素放在队尾。外循环:循环趟数,每一趟将最大(小)的数据元素放在队尾内循环:进行该趟的两两比较图例:图例实现(升序):var arr = [3,6,4,2,11,10,5]f原创 2021-05-27 14:43:26 · 224 阅读 · 13 评论