<script>
var array = [13, 0, 7, 9, 14, -4, 26, 32, 1.2];
var m = quickSort(array);
console.log(m);
function quickSort(arr){
//结束条件
if(arr.length<=1){
return arr;
}
//先找到中间项的下标
var num = Math.floor(arr.length/2);
var numValue = arr[num];
//去掉自身的中间项
arr.splice(num,1);
console.log(numValue,arr);
//左边数组 右边数组
var leftArr = [];
var rightArr = [];
//将每一个数组中的项和中间项进行比较, 比它小的放在左边数组,比他大的放在右边数组
for(var i = 0; i< arr.length;i++){
if(arr[i] < numValue){
leftArr.push(arr[i]);
}else {
rightArr.push(arr[i]);
}
}
console.log(leftArr,rightArr);
return quickSort(leftArr).concat(numValue,quickSort(rightArr));
}
</script>
快速排序
最新推荐文章于 2024-07-17 10:35:12 发布