【发布时间】:2021-06-06 17:24:05
【问题描述】:
// quickSort
function quickSort(arr) {
let len = arr.length;
if(len <= 1) return arr;
let idx = Math.floor(len / 2);
let middleValue = arr.splice(idx, 1)[0];
let left = [];
let right =[];
for(let i = 0; i < len; i++) {
if(arr[i] < middleValue) {
left.push(arr[i])
} else {
right.push(arr[i])
}
}
return quickSort(left).concat([middleValue], quickSort(right));
};
quickSort([1,5,3,2,4,6,8,9])
问题: 这样写的时候报错“RangeError: Maximum call stack size exceeded”
for(让 i = 0; i
但它的工作原理是这样的,
for(让 i = 0; i
为什么?
【问题讨论】:
标签: javascript