javascript - 如何判断暴力排序算法何时排序

标签 javascript algorithm sorting

嗨,我正在编写一个简单的搜索/强力排序算法,但我不知道如何在排序后停止它。我知道算法如何工作,并且我已经为其编写了代码,我已经实现了 while(!sorted) 循环,但这似乎并没有解决问题。我如何知道何时停止调用算法本身,即何时排序。我知道对于像冒泡排序这样的东西,它是大 O 表示法,所以你循环 n 平方次,但是这个排序算法怎么样?这是我失败的尝试,我得到的错误是网页本身崩溃,console.logs 不打印任何负载,控制台中没有任何内容。

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;
}


忽略createCanvas、p5js库函数,不影响问题

最佳答案

您的代码是

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

什么时候应该

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

关于javascript - 如何判断暴力排序算法何时排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60963118/

相关文章:

python - 如何根据元素转换成本排序对集合进行排序,以使连续集合之间的更改最小化?

javascript - 如何通过文本内容找到 DOM 元素?

javascript - 从数据库字段中提取值到复选框值 PHP

javascript - 在 jQuery 中检索 click() 处理程序供以后使用

javascript - DHTMLX "onEditCell"事件在 "onClick"按钮事件之后调用

python - 算法:分解整数 X 以获得尽可能多的不同正整数 (Y1...Yk),以便 (Y1+1)(Y2+1)...(Yk+1) = X

java - 生成概率树然后对结果进行排序的时间高效实现

mysql - 按列名降序排序

python - 如何观看 Timsort 移动元素?

c++ - 异常 : Deletion of node in Binary Search Tree