Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 快速排序算法中的无限循环_Javascript_Quicksort - Fatal编程技术网

Javascript 快速排序算法中的无限循环

Javascript 快速排序算法中的无限循环,javascript,quicksort,Javascript,Quicksort,我想知道为什么我在递归快速排序算法中遇到了一个无限循环 当我尝试运行return语句return(快速排序(less).concat([swapPos],快速排序(more))时,它进入一个无限循环 var quicksort=函数(数组){ //基本情况 if(array.length) 我认为这应该是pivot而不是SwapOS。另外,我认为你应该交换他们的名字。调试器先生怎么说?我不知道如何调试无限循环,因为它会冻结我的浏览器尝试在停止循环时提醒值。我可以问你你没有使用内置的吗?@有些我

我想知道为什么我在递归快速排序算法中遇到了一个无限循环 当我尝试运行return语句
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));