传统的快排都是在数组中,随机选择数组中一个元素(有的会直接选中间),然后从左边寻找第一个比它大的,从右边寻找第一个比它小的,两者互换位置。但是JS的灵活性提供了另一种方法,这种方法更好理解。
function quickSort(arr) {
var length = arr.length;
if(length <= 1) {
return arr;
}
var mid = parseInt(length / 2);
var lower = [], equal = [], greater = [];
for(var i = 0; i < length; i++) {
if(arr[i] < arr[mid]) {
lower.push(arr[i]);
} else if(arr[i] === arr[mid]) {
equal.push(arr[i]);
} else {
greater.push(arr[i]);
}
}
return quickSort(lower).concat(equal).concat(quickSort(greater))
}
本文通过一种更易于理解的方法介绍了JS快速排序算法,详细解释了如何在数组中选择基准元素,以及如何将数组分为三部分:小于、等于和大于基准的部分。此方法简化了传统快速排序的理解过程。
1824

被折叠的 条评论
为什么被折叠?



