initial commit
commit
2456f0d0aa
@ -0,0 +1 @@
|
|||||||
|
.DS_STORE
|
@ -0,0 +1,103 @@
|
|||||||
|
// Strict Mode
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Bars
|
||||||
|
const bars = document.querySelectorAll("div");
|
||||||
|
|
||||||
|
// Generate Random Number Data
|
||||||
|
function GenerateRandomNumberData () {
|
||||||
|
const randomNumberData = [];
|
||||||
|
for (let dataNumber = 0; dataNumber < 100; dataNumber++) {
|
||||||
|
randomNumberData.push(Math.floor(Math.random() * 100));
|
||||||
|
};
|
||||||
|
return randomNumberData;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Set Bar Heights
|
||||||
|
function SetBarHeights ( randomNumberData, activeBar ) {
|
||||||
|
for (let barNumber = 0; barNumber < 100; barNumber++) {
|
||||||
|
if (barNumber == activeBar) {
|
||||||
|
bars[barNumber].setAttribute("style", "height: @vh; background-color: blue;".replace("@", randomNumberData[barNumber]));
|
||||||
|
} else {
|
||||||
|
bars[barNumber].setAttribute("style", "height: @vh; background-color: red;".replace("@", randomNumberData[barNumber]));
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// Set Bar Heights Red
|
||||||
|
function SetBarHeightsr ( randomNumberData, activeBar ) {
|
||||||
|
for (let barNumber = 0; barNumber < 100; barNumber++) {
|
||||||
|
bars[barNumber].setAttribute("style", "height: @vh; background-color: red;".replace("@", randomNumberData[barNumber]));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// Variables
|
||||||
|
let it = 0;
|
||||||
|
let li = 99;
|
||||||
|
let hs = 0;
|
||||||
|
let ls = 0;
|
||||||
|
|
||||||
|
// Bubble Sort Step
|
||||||
|
function BubbleSortStep ( randomNumberData, currentIndex ) {
|
||||||
|
if (randomNumberData[currentIndex + 1 ] == undefined) {
|
||||||
|
it++;
|
||||||
|
hs = 0;
|
||||||
|
return [0, false]
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
let swapped = false;
|
||||||
|
if (randomNumberData[currentIndex] > randomNumberData[currentIndex + 1 ]) {
|
||||||
|
const nextValue = randomNumberData[currentIndex + 1];
|
||||||
|
randomNumberData[currentIndex + 1] = randomNumberData[currentIndex];
|
||||||
|
randomNumberData[currentIndex] = nextValue;
|
||||||
|
swapped = true;
|
||||||
|
SetBarHeights(randomNumberData, currentIndex + 1);
|
||||||
|
it++;
|
||||||
|
hs = currentIndex
|
||||||
|
return [currentIndex + 1, swapped];
|
||||||
|
} else {
|
||||||
|
it++;
|
||||||
|
SetBarHeights(randomNumberData, currentIndex + 1);
|
||||||
|
return [currentIndex + 1, swapped];
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
it++;
|
||||||
|
hs = 0;
|
||||||
|
return [0, false]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Data
|
||||||
|
const data = GenerateRandomNumberData()
|
||||||
|
SetBarHeights(data)
|
||||||
|
|
||||||
|
// Tet
|
||||||
|
function tet (index) {
|
||||||
|
if (it == li) {
|
||||||
|
it = 0;
|
||||||
|
li--;
|
||||||
|
return [0, true]
|
||||||
|
}
|
||||||
|
let [index2, swapped] = BubbleSortStep(data, index)
|
||||||
|
return [index2, swapped];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Swap Variables
|
||||||
|
let index = 0;
|
||||||
|
let swapped;
|
||||||
|
let swappedCount = 0;
|
||||||
|
|
||||||
|
// Sort
|
||||||
|
let time = setInterval(() => {
|
||||||
|
[index, swapped] = tet(index);
|
||||||
|
if (swapped) {
|
||||||
|
swappedCount = 0;
|
||||||
|
} else {
|
||||||
|
swappedCount += 1;
|
||||||
|
}
|
||||||
|
if (swappedCount == 100) {
|
||||||
|
clearInterval(time)
|
||||||
|
SetBarHeightsr(data)
|
||||||
|
}
|
||||||
|
}, 1)
|
@ -0,0 +1,133 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Bubble Sort Demo</title>
|
||||||
|
<style>
|
||||||
|
* {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
align-items: flex-end;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
div {
|
||||||
|
background-color: red;
|
||||||
|
width: 1vw;
|
||||||
|
border: 1px solid black;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<script src="./canvas.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
Loading…
Reference in New Issue