js 疾速排序

// 疾速排序
// 疾速排序运用分治法把一个串(list)分为两个子串(sub-lists)。详细算法完成
// 1.从数组中挑出一个元素,成为基准
// 2.重新排列数组,一切元素比基准值小的摆放在基准前面,一切元素比基准大的摆在基准背面(雷同的能够恣意一边
// 这个分区退出以后,该基准就处于数列的中心位置。成为分区操纵
// 3.递归的把小于基准值元素的子数列和大于基准值元素的子数列排序

var quickSort = function(arr) {
  if (arr.length <= 1) { return arr; }
  var pivotIndex = Math.floor(arr.length / 2);
  var pivot = arr.splice(pivotIndex, 1)[0];
  var left = [];
  var right = [];
  for (var i = 0; i < arr.length; i++){
    if (arr[i] < pivot) {
      left.push(arr[i]);
    } else {
      right.push(arr[i]);
    }
  }
  return quickSort(left).concat([pivot], quickSort(right));
};
const arr = [91, 60, 96, 7, 35, 65];
console.log(quickSort(arr));

    原文作者:你也很棒哦
    原文地址: https://segmentfault.com/a/1190000017992577
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞