【发布时间】:2016-12-05 15:16:05
【问题描述】:
我正在尝试在 JavaScript 中为 int 数组实现快速排序算法。 我的代码有问题。前几个整数得到了很好的排序,但是在 sortet 数组的末尾总是有一个整数被放置了很多次,尽管它在数组中只有一次应该被排序。希望有人会发现我的错。 谢谢。
function quicksort(array) {
var randomPlace = Math.round(Math.random() * array.length);
var pivotelement = array[randomPlace];
left = new Array;
right = new Array;
for (var i = 0; i < array.length; i++) {
if (array[i] < pivot) {
left[left.length] = array[i];
} else {
right[right.length] = array[i];
}
}
if ((left.length == 0 || left.length == 1) && (right.length == 0 || right.length == 1)) {
return left.concat(right);
} else if (left.length == 0 || left.length == 1) {
return (left.concat((quicksort(right))));
} else if (right.length == 0 || right.length == 1) {
return ((quicksort(left)).concat(right));
} else {
return (quicksort(left)).concat((quicksort(right)));
}
}
【问题讨论】:
-
JavaScript quicksort的可能重复
标签: javascript quicksort