title image


Smiley Monolog über Sortieralgorithmen
Angeregt durch diesen Thread: Sortierung eines dynamischen Datenfeld im VBA habe ich mich in den letzten Tagen mit dem Sortieren von Arrays beschäftigt. Bislang hatte ich ehrlich gesagt noch nicht mal ernsthaft darüber nachgedacht, ob man Sortieralgorithmen in VBA überhaupt programmieren kann.

Irgendwann stand ich zwar mal vor der Aufgabe, ein Array sortieren zu müssen, das war dann aber über den Umweg eines temporären Excel-Sheets schnell erledigt.



Die Frage, wozu man Arrays überhaupt sortieren sollte, wo Excel doch eine perfekte Sortierfunktion bereitstellt, ist müßig. Vielleicht sind die Daten ja an verschiedenen Stellen oder gar aus verschiedenen Tabellen zusammengestellt worden und sollen auch wieder an verschiedene Stellen verteilt werden. Vielleicht ist die Sortierung nur ein Zwischenschritt für eine weitere Auswertung.



Außerdem kann man ja durch Programmieren nur lernen. Vielleicht kommt auch der eine oder andere von uns mal in die Situation, etwas in einer verwandten Sprache (z.B. VBScript) programmieren zu müssen, wo dann keine Excel- oder Access-Sortierfunktionen bereitstehen.



Auf jeden Fall war es interessant, sich mit Sortieralgorithmen zu beschäftigen. Der theoretische Gehalt mancher Erläuterungen (z.B. auf Wikipedia) hat mich so manches Mal etwas überfordert, so dass ich eher geneigt war, dort nur Anregungen mitzunehmen und ansonsten lieber selber zu tüfteln und zu programmieren. Im Ergebnis sind neun verschiedene Verfahren entstanden, die ich euch nicht vorenthalten möchte.



Für diese neun Verfahren habe ich neun Prozeduren geschrieben und für alle gelten immer die gleichen Ausgangsbedingungen: Übergeben wird immer ein eindimensionales Array, welches durch die Prozedur sortiert wird. Wenn man es als Referenz (byRef) übergibt (was bei Arrays der Standard ist), braucht man es nicht "zurückübergeben", d.h. nach Ablauf der Sortierprozedur ist es sortiert und kann unter dem gleichen Namen wie zuvor angesprochen und weiterverarbeitet werden.



Damit der Beitrag nicht so lang wird, folgen jetzt mehrere Einzelbeiträge zu den einzelnen Sortiermethoden, plus ein Exkurs zum Erzeugen eindimensionaler Arrays, Sowie natürlich ein Fazit am Ende.


mfg

Ralf

Der Computer löst Probleme, 
die es ohne ihn nicht gäbe!



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: