var arr = [4, 5, 6, 3, 4, 5, 2, 5, 6, 4, 2,];
function quickSort(arra) {
if (arra.length <= 1) {
return arra;
}
else {
var len = arra.length;
var left = [];
var right = [];
var temp = arra.pop();
var newarr = [];
for (var i = 1; i < len; i++) {
if (arra[i] < temp) {
left.push(arra[i]);
}
else { right.push[i]; }
}
}
return newarr.concat(quickSort(left), temp, quickSort(right));
}
console.log(quickSort(arr))
结果是:
我想知道为什么这个方法只返回数组中的一个字符?
答案 0 :(得分:0)
pop()方法从数组中移除最后一个元素(因此长度减少1),第一个元素的索引为0,因此您需要用
替换for循环for (var i = 0; i < len-1; i++) {
您还需要更改right.push [i],如评论
中所述