Der Selection-Sort-Algorithmus beginnt damit, die ersten beiden Elemente eines Arrays zu vergleichen und gegebenenfalls zu ersetzen. Wenn Sie beispielsweise die Elemente eines Arrays in aufsteigender Reihenfolge sortieren möchten und das erste Element größer als das zweite ist, müssen Sie die Elemente vertauschen. Aber wenn das erste Element kleiner als das zweite ist, bleiben die Elemente in ihrer Reihenfolge. Dann werden wieder das erste Element und das dritte Element verglichen und ggf. vertauscht. Dieser Vorgang wird fortgesetzt, bis das erste und das letzte Element des Arrays verglichen sind. Damit ist der erste Sortierungsauswahlschritt abgeschlossen.
Wenn n Elemente zu sortieren sind, sollte der oben erwähnte Vorgang n-1 Mal wiederholt werden, um das gewünschte Ergebnis zu erhalten. Um die Performance im zweiten Schritt zu verbessern, beginnt der Vergleich ab dem zweiten Element, denn nach dem ersten Schritt wird die gewünschte Zahl automatisch in das erste gesetzt. Ebenso beginnt der Vergleich im dritten Schritt beim dritten Element und so weiter. Bei aufsteigender Sortierung steht das kleinste Element zuerst, bei absteigender Sortierung das größte Element zuerst.
Betrachten Sie in der Abbildung die Funktionsweise des Sortieralgorithmus nach dem Auswahlverfahren.
C-Programm zum Sortieren von Elementen mithilfe des Auswahlsortieralgorithmus
#include <stdio.h> int main() { int data[100],i,n,steps,temp; printf("Enter the number of elements to be sorted: "); scanf("%d",&n); for(i=0;i<n;++i) { printf("%d. Enter element: ",i+1); scanf("%d",&data[i]); } for(steps=0;steps<n;++steps) for(i=steps+1;i<n;++i) { if(data[steps]>data[i]) /* Чтобы отсортировать в порядке убывания, измените> на <. */ { temp=data[steps]; data[steps]=data[i]; data[i]=temp; } } printf("In ascending order: "); for(i=0;i<n;++i) printf("%d ",data[i]); return 0; }
Enter the number of elements to be sorted: 5 1. Enter element: 12 2. Enter element: 1 3. Enter element: 23 4. Enter element: 2 5. Enter element: 0 In ascending order: 0 1 2 12 23
Hinweis:
Obwohl dieses Programm in C geschrieben ist, kann der Selection-Sort-Algorithmus in ähnlicher Weise in einer anderen Programmiersprache verwendet werden.
Der Auswahlsortalgorithmus ist einfach zu verwenden, aber es gibt andere Sortieralgorithmen, die eine bessere Leistung als die Auswahlsortierung erbringen. Insbesondere sollte die Auswahlsortierung nicht zum Sortieren einer großen Anzahl von Elementen verwendet werden, wenn die Leistung in diesem Programm von Bedeutung ist.