Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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_Algorithm_Sorting - Fatal编程技术网

Javascript 如何判断何时对蛮力排序算法进行排序

Javascript 如何判断何时对蛮力排序算法进行排序,javascript,algorithm,sorting,Javascript,Algorithm,Sorting,您好,我正在写一个简单的搜索/暴力排序算法,但我不知道如何停止它排序后。我知道算法是如何工作的,我已经为它编写了代码,我已经实现了一个while(!sorted)循环,但这似乎不起作用。我如何知道何时停止调用算法本身,即何时对其进行排序。我知道对于冒泡排序,它是大O符号,所以你循环n平方次,但是这个排序算法呢?这是我失败的尝试,我得到的错误是网页本身崩溃,控制台。日志不打印,控制台中没有加载任何内容 var cols = 100; windowWidth = 800, win

您好,我正在写一个简单的搜索/暴力排序算法,但我不知道如何停止它排序后。我知道算法是如何工作的,我已经为它编写了代码,我已经实现了一个while(!sorted)循环,但这似乎不起作用。我如何知道何时停止调用算法本身,即何时对其进行排序。我知道对于冒泡排序,它是大O符号,所以你循环n平方次,但是这个排序算法呢?这是我失败的尝试,我得到的错误是网页本身崩溃,控制台。日志不打印,控制台中没有加载任何内容

var 
cols         = 100;
windowWidth  = 800, windowHeight = 800,
dataWidth     = windowWidth/cols,
dataStructure = new Array(cols),
colorCode    = [],
sortedd = new Boolean;

//function discovered on https://stackoverflow.com/questions/951021/what-is-the-javascript-version-of-sleep
function sleep(ms) {
   return new Promise(resolve => setTimeout(resolve, ms));
}

function setup(){

   createCanvas(windowWidth, windowHeight);
   for(var i = 0; i < dataStructure.length; i ++){
       dataStructure[i] = random(800);
       colorCode[i] = "blank";
   }
   while(!sorted(dataStructure)){
    sorted(dataStructure);
   }
}

function naiveSort(arr){

    for(var i = 0; i < arr.length - 1; i ++){
        colorCode[i] = "red";
        var temp = Math.random() * (dataStructure.length);
            swap(arr, i, temp);
            colorCode[i] = "red";
    }
}

function sorted(arr){
    for(var i = 0; i < arr.length - 1; i ++){
        if(arr[i] > arr[i + 1]){
            return false;
        }
    }
    return true;
}

 function swap(arr, a, b){
       var temp = arr[a];
           arr[a] = arr[b];
           arr[b] = temp;
}


var
cols=100;
窗宽=800,窗高=800,
数据宽度=窗口宽度/列,
数据结构=新数组(cols),
颜色代码=[],
sortedd=新布尔值;
//在上发现的函数https://stackoverflow.com/questions/951021/what-is-the-javascript-version-of-sleep
功能睡眠(ms){
返回新承诺(resolve=>setTimeout(resolve,ms));
}
函数设置(){
createCanvas(窗口宽度、窗口高度);
对于(var i=0;iarr[i+1]){
返回false;
}
}
返回true;
}
功能交换(arr、a、b){
var-temp=arr[a];
arr[a]=arr[b];
arr[b]=温度;
}
忽略createCanvas,p5js库函数,不会影响问题

您的代码是

while(!sorted(dataStructure)){
    sorted(dataStructure);
   }
应该是什么时候

while(!sorted(dataStructure)){
    naiveSort(dataStructure);
   }
你的代码是

while(!sorted(dataStructure)){
    sorted(dataStructure);
   }
应该是什么时候

while(!sorted(dataStructure)){
    naiveSort(dataStructure);
   }

我认为这只是因为需要很长的时间来整理这些数字。尝试一些较小的cols.Hmmm值,为什么它与其他排序算法一起工作,我已经完成了快速排序和冒泡排序,它们都在这个范围内工作。您没有调用
naiveSort
函数,而且它似乎不是排序函数,因为它将所有元素设置为
“红色”
。我想您已经对代码进行了一些编辑,看看您是否能够理解正在发生的事情,但这会导致一个非常难以理解的问题。@B.brown这两个问题都是多项式时间。这看起来是指数型的。这是一个巨大的差异!我认为这只是因为需要很长的时间来整理这些数字。尝试一些较小的cols.Hmmm值,为什么它与其他排序算法一起工作,我已经完成了快速排序和冒泡排序,它们都在这个范围内工作。您没有调用
naiveSort
函数,而且它似乎不是排序函数,因为它将所有元素设置为
“红色”
。我想您已经对代码进行了一些编辑,看看您是否能够理解正在发生的事情,但这会导致一个非常难以理解的问题。@B.brown这两个问题都是多项式时间。这看起来是指数型的。这是一个巨大的差异!Michael Huang仍然不走运,当我把console.log(“test”);在循环中,我从来没有得到过它,我注意到我犯了一个错误,我在尝试其他方法时,一定是无意中犯了这个错误,知道是什么导致了它吗?Michael Huang仍然不走运,当我放置console.log(“test”);在循环中,我从来没有得到过它,我注意到我犯了一个错误,我在尝试其他方法时,一定是无意中犯了这个错误,你知道是什么导致了它吗?