三、快速排序

2019-10-31  本文已影响0人  lucky_果果

思想:(1)找一个数组的基准点,从数组中取出,改变原数组(用splice实现)

            (2)生成left和right两个数组,小于基准值push到left,大于push到right,利用concat拼接left、基准值、right

                (3)对left和right分别递归调用

代码截图:

代码:

function quickSort(arr){

  arr = arr.concat();

  if(arr.length<=1) return arr;

  let base = arr.splice(0,1);

  let left = [];

  let right = [];

  arr.forEach(element => {

    if(element<base){

      left.push(element);

    }else{

      right.push(element);

    }

  });

  return quickSort(left).concat(base,quickSort(right))

}

console.log(quickSort([6,7,1,2,23,12,1,4,2]));

上一篇 下一篇

猜你喜欢

热点阅读