xxxxxxxxxx
let rectLength;
let range = 500; //Generating random numbers from 1-200
let dataSet = 500; //Total amount of numbers in dataSet
let values = [dataSet]; //Array of numbers
let rects = [dataSet]; //Rectangle representation of data values
let start = true;
let startSort = false;
let tickDelay = 1; //Speed between each iteration
let currentTick = 0; //Current Tick
let swapPos = 0; //Current position being swapped
function setup() {
createCanvas(windowWidth, windowHeight);
background(0);
rectLength = windowWidth/dataSet;
}
function draw() {
if (start)
{
start = false;
for (let i = 0; i < dataSet; i++)
{
values[i] = random(1, range); //Creates dataSet random numbers from 1-range
let r = rect(i*rectLength, windowHeight-values[i], rectLength, values[i]);
rects[i] = r;
}
startSort = true;
}
if (startSort)
{
if (currentTick == tickDelay && swapPos != dataSet)
{
currentTick = 0;
let low = swapPos;
for (let i = swapPos+1; i < dataSet; i++)
{
if (values[i] < values[low])
{
low = i;
}
}
let temp = values[swapPos];
values[swapPos] = values[low];
values[low] = temp;
background(0);
textAlign(CENTER);
textSize(50);
fill(255, 255, 255);
text("Selection Sort", windowWidth/2, 100);
for (let i = 0; i < dataSet; i++)
{
if (i == swapPos+1)
{
fill (255,0 ,0);
}else {
fill (255,255, 255);
}
let r = rect(i*rectLength, windowHeight-values[i], rectLength, values[i]);
rects[i] = r;
}
swapPos++;
}else {
currentTick++;
}
}
}