Skip to content
Snippets Groups Projects

Added option to pause sorting

Merged Daniel Runte requested to merge feature/quit-Sorting into main
3 files
+ 61
24
Compare changes
  • Side-by-side
  • Inline
Files
3
+ 19
11
async function BubbleSort(EingangsArray, updateBars, setColor, sortSpeed){
let abortFlag = {isAborted: false};
export default async function BubbleSort(EingangsArray, updateBars, setColor, sortSpeed) {
const len = EingangsArray.length;
for(let i = 0; i< len -1; ++i){
for(let k=0; k< len -1-i; k++){
for (let i = 0; i < len - 1; ++i) {
if (abortFlag.isAborted) return;
for (let k = 0; k < len - 1 - i; k++) {
if (abortFlag.isAborted) return;
let tmp;
if (k == len -2-i){
setColor([(len-1-i)]);
if (k == len - 2 - i) {
setColor([len - 1 - i]);
}
if(EingangsArray[k] > EingangsArray[k+1]){
if (EingangsArray[k] > EingangsArray[k + 1]) {
tmp = EingangsArray[k];
EingangsArray[k] = EingangsArray[k+1];
EingangsArray[k+1] = tmp;
EingangsArray[k] = EingangsArray[k + 1];
EingangsArray[k + 1] = tmp;
}
updateBars([...EingangsArray]);
await new Promise(resolve => setTimeout(resolve, sortSpeed)); // Pause für Animation
await new Promise(resolve => setTimeout(resolve, sortSpeed));
}
}
setColor([(len-len)]);
setColor([len - len]);
console.log(EingangsArray);
return EingangsArray;
}
export default BubbleSort;
\ No newline at end of file
export function abortBubbleSort() {
abortFlag.isAborted = true;
}
Loading