Javascript 快速排序算法中的无限循环
我想知道为什么我在递归快速排序算法中遇到了一个无限循环 当我尝试运行return语句Javascript 快速排序算法中的无限循环,javascript,quicksort,Javascript,Quicksort,我想知道为什么我在递归快速排序算法中遇到了一个无限循环 当我尝试运行return语句return(快速排序(less).concat([swapPos],快速排序(more))时,它进入一个无限循环 var quicksort=函数(数组){ //基本情况 if(array.length) 我认为这应该是pivot而不是SwapOS。另外,我认为你应该交换他们的名字。调试器先生怎么说?我不知道如何调试无限循环,因为它会冻结我的浏览器尝试在停止循环时提醒值。我可以问你你没有使用内置的吗?@有些我
return(快速排序(less).concat([swapPos],快速排序(more))
时,它进入一个无限循环
var quicksort=函数(数组){
//基本情况
if(array.length)
我认为这应该是pivot而不是SwapOS。另外,我认为你应该交换他们的名字。调试器先生怎么说?我不知道如何调试无限循环,因为它会冻结我的浏览器尝试在停止循环时提醒值。我可以问你你没有使用内置的吗?@有些我只是想在quicksort v上做一些基于时间的测试没什么大不了的,只是为了自娱自乐
var quicksort = function (array) {
//base case
if (array.length <= 1) {
return array;
}
var pivot = Math.floor(((array.length - 1) / 2));
console.log(pivot);
var swapPos = array[pivot];
console.log(swapPos);
var less = [];
var more = [];
array = array.slice(0, swapPos).concat(array.slice(swapPos + 1));
// console.log(array);
for (i = 0; i < array.length; i++)
{
if (array[i] < swapPos) {
less.push(array[i]);
}
else {
more.push(array[i]);
}
}
//console.log(more);
// console.log(less);
// return (quicksort(less).concat([swapPos], quicksort(more)));
};
quicksort([19, 12, 44, 2, 1, 7, 85, 22, 5, 4, 3]);
array = array.slice(0,swapPos).concat(array.slice(swapPos+1));