概述
JS排序
做个小笔记,递归方面花了好些时间思考逻辑~
function quirk(arr){
//4.结束递归(当数组中小于等于一项,不用处理)
if(arr.length <=1) return arr;
//1.找到数组的中间项
let middleIndex = Math.floor(arr.length/2);
let middleValue = arr.splice(middleIndex,1)[0];
//2.准备两个数组,循环剩下数组的每一项,比当前项小的放左边,反之放右边
let arrLeft = [],arrRight = [];
for (let i = 0;i< arr.length;i++){
let item = arr[i];
item < middleValue? arrLeft.push(item) : arrRight.push(item);
}
//3.递归方式让左右两边的数组持续这样处理,一直到左右两边排序好为止(最后拼接成: 左+中+右)
return quirk(arrLeft).concat(middleValue,quirk(arrRight));
}
let arr = [12,8,15,16,1,24]
arr = quirk(arr)
console.log(arr);//[1,8,12,15,16,24]
//第二种方式:时间更快
function quick(x) {
if (x.length <= 1) {
return x;
}
return [...quick(x.filter(i=>i<x[0])),x[0],...quick(x.filter(i=>i>x[0]))]
}
let a = quick([12,8,15,16,1,24])
console.log(a)
最后
以上就是动人口红为你收集整理的JS快速排序的全部内容,希望文章能够帮你解决JS快速排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复