javascript [快速排序] #javascript

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript [快速排序] #javascript相关的知识,希望对你有一定的参考价值。

function quicksort(arr) {
   // => 如果传递进来的数组只有一项或者是空的,我们则不再继续取中间项拆分
   if (arr.length <= 1) {
       return arr;
   }
  //-> 获取中间项的索引:把中间项的值获取到,在原有数组中删除中间项
  var centerIndex = Math.floor(arr.length / 2),
      centerValue = arr.splice(centerIndex, 1)[0];   // => splice返回的是个数组,数组中包含了删除的那个内容

  

   // ==> 用剩余数组中的每一项和中间项进行比较,比中间项大的放在右边,比他小的放在左边(左右两边的都是数组)
   var arrLeft = [],
       arrRight = [];

   for (let i = 0; i < arr.length; i++) {
       let cur = arr[i];
       cur < centerValue ? arrLeft.push(cur) : arrRight.push(cur);
   }

   return quicksort(arrLeft).concat(centerValue, quicksort(arrRight));


}


console.log(quicksort([12,15, 14, 13, 16, 11]));

以上是关于javascript [快速排序] #javascript的主要内容,如果未能解决你的问题,请参考以下文章

javascript实现快速排序算法

JavaScript实现快速排序

JavaScript实现快速排序

JavaScript排序算法——快速排序

JavaScript实现快速排序算法

js冒泡排序法——选择排序(other)——计数排序(桶排序)——快速排序——插入排序-更新