P5 SORTING ALGORITHM

graph TD
A[INPUT ARR] --> B(Round)
B[LOOP START] --> C{Decision}
C[RUN UNTILL ARRAY LENGHT] --> D[Result 1]
D[MAKE FIRST CHOICE COPY TEMP] --> E
E[ASS]

Shuffle array. Her ser vi et flowchart over hvad min kode gør, først og fremmest har vi hele funktionen (Handlingen) i et loop indtil at vores tæller har talt op til rækkens længde (Den plusser en til hver runde). Herefter tager min kode det sidste nummer i rækken, og gemmer det til side, vi kan kalde det L (det bliver et tal mindre efter hver runde), efter det regner den et tilfældigt tal sammen mellem vores rækkes laveste til højeste. Efter det er gjort sætter vi det nye tilfældige tal ind på L’s plads.

Sorteringsalgoritme. Vi har en lang talrække, som vi så først og fremmest checker de to første tal, at hvis nummer et er større end nummer to, så skal de skifte plads. Det sker som vist nedenunder hvordan. Først tager vi en kopi af 5, så værdien ikke går tabt, hvorefter vi kopiere plads nummer 2’s værdi og sætter den ind i stedet for 5. Så nu står der altså 2 - 2 i rækken. Den kopierede værdi (5) sætter vi så ind på nummer to’s plads. så nu står der altså 2 - 5. På den måde fortsætter vi ned af rækken, og til sidst ender vi med det højeste tal i bunden, hvorefter det hele kører igen (med den sidste udelukket).

Kode

SE LIVE DEMO HER

 'use strict';

let Arr = [];
let size = 11
let fr = 10;

// Fill my Array
for(var i = 0; i < size;i++){
  Arr.push((i+1)*10);
}

function Visualize(){
  translate(0,(height/10)*5);
  for(var i = 0; i < Arr.length;i++){
    line(25+(i*5), -Arr[i], 25+(i*5), 0);
  }

}
// Shuffle my Array
function Shuffle(){
  print('Shuffle starting');
  for(let i = Arr.length -1; i > 0; i--){
    const tmp = Arr[i];
    const ri = Math.round(Math.random()*i)
    Arr[i]= Arr[ri];
    Arr[ri]=tmp;
  } 
}

//Swap my Numbers - https://www.kirupa.com/html5/swapping_items_array_js.htm
// Num1 & 2 er kaldet index
function Swap(Input, Num1, Num2){
 let tmp = Input[Num1];
 //Input[Num1] = Input[Num2]; //
 Input[Num1] = Input[Num2];
 Input[Num2] = tmp;
}

// Sort my Array (Bubble Sort)
function BubbleSort(){
  print('Bubblesort starting');
  for(let i = 0; i < Arr.Length; i++){
    let Start1 = Arr[i];
    //let b = i + 1;
    let Start2 = Arr[i + 1];
    print('d starting');
    if(Start1 > Start2){
      Swap(Arr, i, i+1);
    }
//


 }
}

//Sorted my Array?
//stroke(0,255,0)

function setup() {
  createCanvas(windowWidth, windowHeight);
  background(220);
  Shuffle();
  BubbleSort();
  Visualize();
}