Selection Sort ist ein recht einfach zu begreifender Algorithmus. Es wird
zunächst das gesamte Feld nach dem kleinsten Schlüssel durchsucht
und schließlich das zugehörige Element an die erste Position
im Feld gestellt. Danach wird von der zweiten Stelle an nach dem kleinsten
Schlüssel im übriggebliebenen Feld (zweitkleinster Schlüssel
überhaupt) gesucht und das zugehörige Element an der zweite Feldposition
gestellt. Nach diesem Prinzip wird fortgefahren, bis das N-1 kleinste Element
an vorletzter Stelle steht und somit das Feld vollständig sortiert
ist. Selection Sort braucht etwa N²/2 Vergleiche und N Austauschoperationen.
void cm_Selection(itemType feld[], int N) {
int i, j, min;
for(i=1; i<N; ++i) {
min = i;
for(j=i+1; j<=N; ++j) {
if(feld[j] < feld[min]) {
min = j;
}
}
cm_Tausch(feld, min, i);
}
}