快速排序

首先选取一个基准值,再分别将数组中的数据与基准值进行比较,如果大于基准值,放入右边的空数组中,如果小于则放入左边的空数组中;

再对左边数组和右边数组重复以上的操作

function quicksort(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));
}

posted @ 2020-04-10 16:07  ashen1999  阅读(111)  评论(0编辑  收藏  举报