快速排序法
基本思想:
抽出数组的中间项,遍历这个数组,让每一项都和中间项作比较,创建左右两个空数组Left和Right,小的放左边的数组Left,大的放右边的数组Right,接着再递归分别拿Left和Right两个数组去进行上面相同的操作…以此类推。
代码如下:
function quick(arr) {
if(arr.length <= 1) {
return arr;
}
let middleIndex = Math.floor(arr.length/2);
let middleValue = arr.splice(middleIndex,1)[0];
let arrLeft = [];
let arrRight = [];
for(let i = 0;i < arr.length;i++){
let temp = arr[i];
temp > middleValue ? arrRight.push(temp) : arrLeft.push(temp);
}
return quick(arrLeft).concat(middleValue,quick(arrRight));
}
let ary = [10,3,30,28,9];
ary = quick(ary);
console.log(ary);
运行结果如图:
【 以上是本人学习探索中记下的笔记,仅供分享学习。如有雷同,无意冒犯,请务必及时告知,立即更正!】