Heim >Backend-Entwicklung >C++ >C-Programm zur Auswahlsortierung
Selection Sort ist ein aggressiver Algorithmus, der die kleinste Zahl aus einem Array findet und an der ersten Position platziert. Das nächste zu durchlaufende Array beginnt am nächsten Index mit der kleinsten Zahl.
Nehmen wir ein Beispiel, um dieses Konzept deutlicher zu veranschaulichen.
Wir haben ein Array {6, 3, 8, 12, 9} und das kleinste Element in diesem Array ist 3. Also setzen wir 3 an die erste Position und danach sieht das Array wie folgt aus: {3, 6, 8, 12, 9} . Jetzt werden wir wieder die kleinste Zahl finden, aber dieses Mal werden wir die 3 bei der Suche nicht berücksichtigen, da sie an ihrer Stelle steht. Suchen Sie das nächstkleinere Element, 6, erstellen Sie ein Array mit 6 an der zweiten Position und durchsuchen Sie das Array erneut, bis das Array sortiert ist.
So funktioniert der Auswahlsortierungsalgorithmus –
Der Auswahlsortierungsalgorithmus folgt den folgenden Schritten:
Nehmen wir ein Array {20, 12, 23, 55,21}
Setzen Sie das erste Element des Arrays auf den Mindestwert .
Mindestwert = 20
Vergleichen Sie den Mindestwert mit dem nächsten Element und weisen Sie dieses Element als Mindestwert zu, wenn er kleiner als der Mindestwert ist. Tun Sie dies bis zum Ende des Arrays.
wird mit 12 : 20 > 12 verglichen, der Minimalwert = 12
wird mit 23 : 12 wird mit 55 verglichen: 12
wird mit 21 verglichen: 12
setzt den Minimalwert an die erste Position (Index 0) des Arrays.
Array = {12, 20,23, 55, 21}
Beginnen Sie für die nächste Iteration mit der Sortierung ab dem ersten unsortierten Element.
Array = {12, 20,23, 55, 21}
Beginnen Sie mit der Suche ab 20 und platzieren Sie als nächstes das Element mit dem Mindestwert.
Iteration 2:
Minimalwert = 20
im Vergleich zu 23: 20
im Vergleich zu 55: 20
im Vergleich zu 21: 20
Minimalwert bleibt unverändert,
Array = {12, 20,23, 55, 21}
Iteration 3:
Minimalwert = 23.
im Vergleich zu 55: 23
im Vergleich zu 21: 23 > 21, Mindestwert = 21
Mindestwert in Index verschoben = 2
Array = {12, 20, 21, 55, 23}
Iteration 4:
Minimum = 55
im Vergleich zu 23: 23
Minimum wurde auf Index 3 verschoben Array = { 12 , 20 , 21 , 23 , 55 }
#include <stdio.h> int main() { int arr[10]={6,12,0,18,11,99,55,45,34,2}; int n=10; int i, j, position, swap; for (i = 0; i < (n - 1); i++) { position = i; for (j = i + 1; j < n; j++) { if (arr[position] > arr[j]) position = j; } if (position != i) { swap = arr[i]; arr[i] = arr[position]; arr[position] = swap; } } for (i = 0; i < n; i++) printf("%d\t", arr[i]); return 0; }
0 2 6 11 12 18 34 45 55 99
Das obige ist der detaillierte Inhalt vonC-Programm zur Auswahlsortierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!