Я пишу javascript код, чтобы выполнить наивную сортировку для массива значений, однако у меня возникает проблема, когда l oop, где он вылетает. Это происходит в
while(!sorted(dataStructure)){
naiveSort(dataStructure);
}
Я хочу, чтобы, если каждый элемент от i до конца был меньше, чем следующий, отсортированный возвращает true, поэтому алгоритм наивной сортировки заканчивается. Может быть одна или две вещи, такие как createCanvas (800, 800); Это просто методы из библиотеки p5 js, но ни один из них не используется в алгоритме.
naiveSort. js
function setup(){
createCanvas(800, 800);
for( var i = 0; i < dataStructure.length; i ++){
dataStructure[i] = random(800);
colorCode[i] = "blank";
}
while(!sorted(dataStructure)){
naiveSort(dataStructure);
}
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function swap(arr, a, b){
var temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
async function naiveSort(arr){
for(var i = 0; i < arr.length; i ++){
temp = Math.random() * ((arr.length - 1) - 0) + 0;
swap(arr, i, temp);
await sleep(10);
}
}
function sorted(arr){
for(var i = 1; i < arr.length-1; i ++){
if(arr[i] > arr[i+1]){
return false;
}
}
return true;
}
function paint(col, rgb){
for(var i = 0; i < dataStructure.length; i ++){
if(colorCode[i] == col){
stroke(0);
fill(rgb);
rect(i * dataWidth, 800 - dataStructure[i], dataWidth, dataStructure[i]);
}
}
}
function draw(){
background(51);
paint("red", color(255, 0, 0));
paint("green", color(0, 255, 0));
paint("blank", color(255));
}
индекс. html
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>p5.js example</title>
<style>
body {
padding: 0;
margin: 0;
}
</style>
<script src="../p5.js"></script>
<script src="naiveSort.js"></script>
</head>
<body>
</body>
</html>