![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
前端小端长
这个作者很懒,什么都没留下…
展开
-
JavaScript实现快速排序
根据快速排序思想: 首先找到基准数。 遍历数组,比基准数小的放左边,比基准数大的放右边。 把左右数分别放在数组里执行1,2步操作,直到左右数组里只有一个数。 返回排好序的数组,即左数组+基准数+右数组 实现代码: const quickSort = (arr)=>{ //定义一个基准数 let base_num = arr[0]; //定义左数组 let left_arr = []; //定义右数组 let right_arr=[]; //一原创 2020-08-17 17:29:57 · 426 阅读 · 2 评论 -
JS实现十大排序算法——选择排序
思路: 每次遍历找到一个所有未排序项的最大或最小值,第一次循环将其与第一位交换位置,第二次将其与第二位交换位置,第三次将其与第三位交换位置,以此类推,最后所有项都会在相应位置上。 具体实现: function selectSort(array){ let indexMax; for(let i=0;i<array.length-1;i++){ indexMax...原创 2019-11-05 10:13:07 · 181 阅读 · 0 评论 -
JS实现十大排序算法——冒泡排序
具体思路: 循环体内部每次执行一次比较,比较相邻两数的大小。 内层循环控制两两比较的次数,内层循环跑一遍,总能把最大或者最小的数冒泡到最右边 外层循环控制冒泡次数,也就是内部循环跑的趟数,为数据规模n。 function bubblingSort(array) { for (let i = 0; i < array.length - 1; i++) { for (...原创 2019-11-05 09:17:53 · 206 阅读 · 0 评论 -
JS实现数据结构栈
栈概念: 栈是一种常见的数据结构,它是一种遵循后进先出(LIFO)原则的有序集合。新添加的元素会在栈顶,每次删除也是从栈顶删除。 ES6用数组模拟栈: //基于数组方法实现的栈 class Stack{ //创建栈类 constructor(){ this.items = []; } ...原创 2019-09-24 19:24:23 · 290 阅读 · 0 评论 -
JS实现数据结构——队列(基于ES6语法)
队列: 概念: 队列是遵循先进先出(FIFO),原则的一组有序的项。 队列可用的方法: enqueue(): 向队列中添加元素(一个或多个). dequeue(): 移除队列的第一项,并返回被移出的元素; peek(); 返回队列的第一个元素(最先被添加的)。其他语言中也有叫front方法; isEmpty();检测队列是否为空。 size(); 返回队列包含的元素个数; 实现: //(...原创 2019-09-24 21:47:46 · 406 阅读 · 0 评论 -
JS(ES6新语法)实现数据结构——双端队列
双端队列: 概念: 双端队列是一种把队列和栈结合的数据结构。可以从两端进行增减项。 常见应用:存储撤销操作。 可用方法: isEmpty() ; 判断双端队列是否为空。返回布尔值。 clear(); 清空双端队列。 size();返回双端队列的大小。 addFront(element);在双端队列前添加一个项。 addBack(element);在双端队列后面添加一项。 removeFront...原创 2019-09-25 11:23:01 · 558 阅读 · 0 评论