Zur Themenübersicht     

Minsort  (eine einfache Einführung ohne Laufzeitbetrachtungen)

Einleitung:

Die Funktionsweise von Minsort

Die Funktionsweise von Minsort
Minsort oder auch "Sortieren durch Auswahl" ist ein einfacher Sortieralgorithmus, der zum Sortieren kleinerer Datenmengen eingesetzt wird. Allgemeines Prinzip: Finde zunächst das kleinste Element im zu durchsuchenden Feld (Array) und tausche dieses gegen das an der ersten Stelle befindliche Element aus. Finde anschließend das zweitkleinste Element, tausche dieses gegen das zweite aus usw.  . Der nicht sortierte Bereich wird so immer kleiner. Fahre so fort, bis der nicht sortierte Bereich nur noch ein Element enthält.
Zurück 

 


Möglicher Quellcode von Minsort
(1)procedure TSortFeld.minsort;
(2)   var i,kleinste,schon_sortiert : integer;
(3)begin
(4)   for schon_sortiert := 0 to h_anzahl-1 do
(5)      begin
(6)         kleinste := schon_sortiert;
(7)         for i := schon_sortiert+1 to h_anzahl-1 do
(8)            if h_feld[i].LessThan(h_feld[kleinste])
(9)            then kleinste := i;
(10)         Exchange(schon_sortiert,kleinste);
(11)     end;
(12)end;

 Zurück 


Beschreibung der einzelnen Zeilen des Quellcodes :
(1)-------------------------------------------------------------------------------------------------------------------------------------
(2) i : Zählvarriable/kleinste : das vorläufig kleinste Element/

schon_sortiert : 1.Element des Sortierbereichs

(3)------------------------------------------------------------------------------------------------------------------------------------- 

(4)Die äußere Zählschleife wird eingeleitet vom Feldanfang bis zum Feldende/

Sortierte Elemente wird auf Null gesetzt(durch die Schleife wird nach jedem

Austausch der Sortierbereich verkleinert,

indem das 1.Elem. des Sortierbereiches um 1 erhöht wird)

(5)------------------------------------------------------------------------------------------------------------------------------------- 

(6)"kleinste" wird der Wert von "schon_sortiert" zugewiesen

Hiermit wird, für den Anfang des Schleifendurchlaufs,

das 1. Element des Sortierbereichs als (vorläufig)kleinstes angenommen 

(7)Die innere Zählschleife wird eingeleitet um mit dem Suchzeiger

das kleinste Elem. im Sortierbereich zu finden 

(8)wenn das aktuelle Element kleiner als das (vorläufig) kleinste ist 

(9)dann ist das aktuelle Element jetzt das (vorläufig) kleinste 

(10)Eine Austauschprozedur wird aufgerufen, wenn der Suchzeiger

am Ende des Sortierbereichs ist, sie tauscht das jetzt (vorläufig) kleinste

Element mit dem 1.Element des Sortierbereichs

(11)----------------------------------------------------------------------------------------------------------------------------------- 

(12)-----------------------------------------------------------------------------------------------------------------------------------

 Zurück 
Hier ein animiertes GIF welches die Funktionsweise veranschaulichen soll:
 


Der rote Pfeil zeigt den Suchzeiger an Der grüne Balken zeigt das (vorläufig kleinste Element an) Der schwarze Balken ist der Sortierbereich (also der nicht schwarze Bereich die schon sortierten Elemente)

 Zurück