Implementierung

Angenommen die nachfolgende Funtion bekommt die Anfangsadresse (``data'') einer Datenemenge, die ein zusammenhängender Speicher ist (Array), und die Anzahl (``num'') der Elemente, welche in der Menge enthalten sind, würde eine Implementierung in C wie folgt aussehen:


\begin{listing}{1}
void selection_sort( int * data, int num )
{
int i, j, min...
...a[i];
data[i] = data[min_index];
data[min_index] = tmp;
}
}
} \end{listing}

``i'' ist eine Marke, welche die bereits sortierte von der noch zu sortierenden Menge trennt. Die äussere Schleife ist daführ verantwortlich den Ablauf des Algorithmus zu steuern, während die innere Schleife die Position des Elements herausfindet, welches das kleinste in der unsortierten menge ist. Nach dem die innere Schleife beendet ist, wird das gefundene Element mit dem an der Marke ausgetauscht, falls dies nicht die gleichen sind. Danach wird die Markenposition um eins hochgezählt und genauso verfahren, bis sich die sortierte Teil über die gesamte Datenmenge erstreckt.


Nächste Seite  Aufwärts  Vorherige Seite  Inhalt 


Nächste Seite: Laufzeitkomplexität Aufwärts: SelectionSort Vorherige Seite: Beispiel   Inhalt

2002-05-09