the stack sorting algorithm visualizer christian berrer tyron
the stack sorting algorithm visualizer! christian berrer tyron madlener
Übersicht � Architektur � How-To: Stooge Sort in Post. Script � Vergleich & Metriken � Eine „kleine“ Vorführung
Architektur 1/2 Integer Array swap get Post. Script Canvas (put) mark. Points ? Sorting Algorithms unmark. Points
Architektur 2/2 Vergleich Canvas Array Punkte im Array tauschen Punkte markieren Algorithmus Punkte am Spielfeld tauschen Vergleich durchführen Swap Punkte demarkieren
Stooge Sort in Post. Script 1/4 � Einfach, rekursiv, total ineffizient algorithm stooge. Sort (i = 0, j = length(L) - 1) if L[j] < L[i] then L[i] ↔ L[j] if (j - i + 1) >= 3 then t = (j - i + 1) / 3 stooge. Sort (i, j - t) stooge. Sort (i + t, j ) stooge. Sort (i, j-t)
Stooge Sort in Post. Script 2/4 � Erster Schritt: Skelett festlegen /stooge. Sort { /ss { { } if { ss ss ss } if } bind def 0 fsize % Stack: i j ss % Stack: } bind def
Stooge Sort in Postscript 3/4 � Code und Debug-Operationen einfügen L[j] L[i]. . . . <. . . if then. . . L[i] ↔ L[j]. . (ss, out, 0, Stack: i j) pp 2 dup (ss, out, 1, Stack: i j) pp ppop % Mark (ss, out, 2, Stack: i j) pp 2 dup 2 { exch field exch get+ } repeat (ss, out, 3, Stack: i j f[i] f[j]) pp gt 3 1 roll 2 dup ppop rot % Unmark (ss, out, 4, Stack: i j res) pp { (ss, if 1, 0, Stack: i j) pp 2 dup swap (ss, if 1, 1, Stack: i j) pp } if. . .
Stooge Sort in Post. Script 4/4 � Die Funktion pp: /pp { print (n) print field pstack pop flush pause } def /pp { pop } def � Wie sieht das live aus?
Vergleich & Metriken 1/3 200 180 173 160 140 120 100 80 65 60 40 20 0 Operationen Bubble Selection Insertion Shell Merge Heap Quick Comb Shear Shaker Slow Gnome Stooge
Vergleich & Metriken 2/3 20000 Bubble 15000 Selection 10000 Insertion Shell 5000 Merge 0 -5000 R 1 R 2 R 3 R 4 R 5 R 6 R 7 R 8 R 9 Heap Quick Comb -10000 Shear -15000 Shaker -20000 Gnome -25000 Stooge Durchschnittliche Abweichungen
Vergleich & Metriken 3/3 30000 Bubble Selection 25000 Insertion Shell 20000 Merge Heap 15000 Quick 10000 Comb Shear 5000 Shaker Gnome 0 Get Operations Put Operations Stooge
Vergleich & Metriken 3/3 450000 Bubble 400000 Selection 350000 Insertion 300000 Shell Merge 250000 Heap 200000 Quick 150000 Comb 100000 Shear Shaker 50000 Gnome 0 Get Operations Put Operations Stooge
Vergleich & Metriken 3/3 50000000 Bubble 45000000 Selection 40000000 Insertion 35000000 Shell 30000000 Merge 25000000 Heap 20000000 Quick 15000000 Comb Shear 10000000 Shaker 5000000 Gnome 0 Get Operations Put Operations Stooge
Vergleich und Metriken 3/3 1600000 1400000 133406180720 1200000 1000000 Stooge 800000 Slow 600000 400000 200000 0 43165714. 2 Get Operations 118994. 2 124908 Put Operations
Vorführung
- Slides: 15