xxxxxxxxxx
110
var t = [];
var number;
var w;
var count=0;
var checkcount=0;
var swapcount=0;
function setup() {
createCanvas(400, 400);
colorMode(RGB);
number = 500;
w = width / number;
var h = height/number;
var heightt = [];
for (var i = 0; i < number; i++) {
heightt[i] = i*h;
}
shuffleArray(heightt);
for (var i = 0; i < number; i++) {
t[i] = new Tile(i * w, heightt[i]);
}
}
function draw() {
background(255,255,255);
if (count < number * number && frameCount % 4 == 0) {
var check=0;
for (var i = 0; i < number; i++) {
for (var j = i; j < number; j++) {
checkcount++;
if (t[j].y < t[i].y) {
var temp = t[j].y;
t[j].y = t[i].y;
t[i].y = temp;
check=1;
swapcount++;
break;
}
}
}
if(check == 0){
for(var i=0;i<number;i++){
t[i].c=255;
t[i].draw();
noLoop();
}
}
}
else if(count >= number * number){
noLoop();
}
for (var i = 0; i < number; i++) {
t[i].draw();
}
text('Total checks : ' + checkcount, 10,330,200,20);
text('Total swaps : ' + swapcount,10,350,200,20);
text('BUBBLE SORT REPRESENTATION : 500 lines',50,380,350,20);
count++;
}
function shuffleArray(array) {
for (var i = array.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}