我是靠谱客的博主 动人口红,最近开发中收集的这篇文章主要介绍JS快速排序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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快速排序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(188)

评论列表共有 0 条评论

立即
投稿
返回
顶部