Scripting:BubbleSort

Aus STNE-Wiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K (Der BubbleSort)
K (Der BubbleSort)
Zeile 4: Zeile 4:
Im Gegensatz zum einfachen Sort muß er nicht immer der gesammte Array durchgehen um die geeignete Position für die gegebene Zahl zu finden, weshalb sich die Verarbeitungsgeschwindigkeit eklatant verbessert wird. Durch diese Sortierweise können auch lange Arrays mit extrem geringem Zeit und Ressourcenaufwand geordnet werden.
Im Gegensatz zum einfachen Sort muß er nicht immer der gesammte Array durchgehen um die geeignete Position für die gegebene Zahl zu finden, weshalb sich die Verarbeitungsgeschwindigkeit eklatant verbessert wird. Durch diese Sortierweise können auch lange Arrays mit extrem geringem Zeit und Ressourcenaufwand geordnet werden.
<br><br>
<br><br>
-
<b><font color="#FF0000">ACHTUNG!!!</font></b> Diese Funktion ist mit <u><b>array.binarysearch()</b></u> unnötig geworden! Bitte diese Funktion wegen Performancegründen <b><font color="#FF0000">NICHT</font></b> nutzen und <b><u>nur für Lehrzecke</u></b> einsetzten!
+
<b><font color="#FF0000">ACHTUNG!!!</font></b> Diese Funktion ist mit <u><b>array.sort()</b></u> und <u><b>array.reverse()</b></u> unnötig geworden! Bitte diese Funktion wegen Performancegründen <b><font color="#FF0000">NICHT</font></b> nutzen und <b><u>nur für Lehrzecke</u></b> einsetzten!
<br><br>
<br><br>
Der Array ist so geschrieben, dass er nicht kopiert werden muß, sondern lediglich ein Speicherverweis dazu hergestellt wird.<br>
Der Array ist so geschrieben, dass er nicht kopiert werden muß, sondern lediglich ein Speicherverweis dazu hergestellt wird.<br>

Version vom 17. Mai 2006, 17:52 Uhr

Inhaltsverzeichnis

Der BubbleSort

Er wird verwendet um Arrays aus Zahlen effizent zu sortieren, beispielsweise um danach einen BinarySearch aufzurufen. Im Gegensatz zum einfachen Sort muß er nicht immer der gesammte Array durchgehen um die geeignete Position für die gegebene Zahl zu finden, weshalb sich die Verarbeitungsgeschwindigkeit eklatant verbessert wird. Durch diese Sortierweise können auch lange Arrays mit extrem geringem Zeit und Ressourcenaufwand geordnet werden.

ACHTUNG!!! Diese Funktion ist mit array.sort() und array.reverse() unnötig geworden! Bitte diese Funktion wegen Performancegründen NICHT nutzen und nur für Lehrzecke einsetzten!

Der Array ist so geschrieben, dass er nicht kopiert werden muß, sondern lediglich ein Speicherverweis dazu hergestellt wird.
Das Array, welches als Quelle dient, wird dabei verändert.

Der Algorythmus

Der ganze Algorythmus ist als Methode verwirklicht worden. Dies ermöglicht die unveränderte übernahme des Quellcodes, siehe unten.

  Sub BubbleSort (ByRef a as integer, aLenght as integer){
     var i=0;
     var tmp;
     While (++i<aLenght){
        if (a[i-1]>a[i]){
           tmp=a[i-1];
           a[i-1]=a[i];
           a[i]=tmp;
           i=i-2;
        }
        if(i<0){i=0}
     }
  }

Der ultimative Test

Um den Sort zu testen, könnt ihr beispielsweise folgendes schreiben:

  var aLaenge = 8;
  var arr[aLaenge] as integer = { 15, 2, 19, 8, 20, 8, 29, 4 };
  WriteLine(' ');
  WriteLine('Array vor der Sortierung:');
  WriteLine(arr[0] & ' ' & arr[1] & ' ' & arr[2] & ' ' & arr[3] & ' ' & arr[4] & ' ' & arr[5] & ' ' & arr[6] & ' ' & arr[7]);
  BubbleSort(arr,aLaenge);
  WriteLine(' ');
  WriteLine('Array nach der Sortierung:');
  WriteLine(arr[0] & ' ' & arr[1] & ' ' & arr[2] & ' ' & arr[3] & ' ' & arr[4] & ' ' & arr[5] & ' ' & arr[6] & ' ' & arr[7]);
  WriteLine(' ');

Der Erfolg

  Script gestartet.
  
  Array vor der Sortierung:
  15 2 19 8 20 8 29 4
  
  Array nach der Sortierung:
  2 4 8 8 15 19 20 29
  
  Script beendet.

Viel Spaß mit BubbleSort!

MFG Proximo

Persönliche Werkzeuge