下面的代码是排序递归函数,最后return的是一层层递归后的结果,但是当入参的 arr 是一个很长的数组时感觉想象一个个结果的时候太抽象怎么办,有什么好的方法去理解吗?
var quickSort = function(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));
};
随便举个例: