【发布时间】:2015-03-13 21:58:03
【问题描述】:
我正在尝试在 JavaScript 中实现快速排序功能:
function partition(l, low, high) {
l[0] = l[low];
var pivotkey = l[low];
while (low < high) {
while (low < high && pivotkey <= l[high]) {
--high;
}
l[low] = l[high];
while (low < high && l[low] <= pivotkey) {
++low;
}
l[high] = l[low];
}
l[low] = l[0];
return low;
}
function qsort(l, low, high) {
var pivotloc;
if (low < high) {
pivotloc = partition(l, low, high);
qsort(l, low, pivotloc - 1);
qsort(l, pivotloc + 1, high);
}
return;
}
function quickSort(l) {
qsort(l, 1, l.length - 1);
return l;
}
console.log(quickSort([0, 1, 4, 3]));
但是这个程序在终端中什么也没输出(node qsort.js)。也许我错过了一些东西。谁能指出我正确的方向?如何调试此类问题?
【问题讨论】:
-
是 l[0] 一个临时案例还是要排序的数组的一部分????
-
@Meninx 它不是要排序的数组的一部分。请在 C 类版本中查看我的 cmets(URI 在您的答案下注释)。
标签: javascript algorithm sorting quicksort