-In-Place-Integer-Algorithmus. Die selektive Sortierung eignet sich für kleine Dateien.
· Einfach zu verstehen · Sortierung vor Ort (kein zusätzlicher Speicher erforderlich) ・ Schneller als Blasensortierung
・ Verschlechterung des Berechnungsbetrags aufgrund der Skala: O (n²)
In C-Sprache implementieren. Zeigen Sie die englischen und mathematischen Ergebnisse in absteigender Reihenfolge an (größte Reihenfolge). Verwenden Sie die selektive Sortierung, um die Daten zu sortieren.
selection_sort.c
#include <stdio.h>
#define NMAX 1000
int main(){
int eigo[NMAX], math[NMAX], gokei[NMAX], n, max, work;
printf("data="); scanf("%d", &n);
for (int i = 0; i <n ; ++i) {
printf("[%3dbanme]=", i); scanf("%d %d", &eigo[i], &math[i]);
gokei[i]=eigo[i]+math[i];
}
for (int i = 0; i <n-1 ; ++i) {
max=i;
for (int j = i+1; j <n ; ++j) {
if (gokei[j]>gokei[max]) max=j;
}
if(i!=max) {
work=eigo[i];eigo[i]=eigo[max];eigo[max]=work;
work=math[i];math[i]=math[max];math[max]=work;
work=gokei[i];gokei[i]=gokei[max];gokei[max]=work;
}
}
printf("*** RESULTS ***\n");
printf("RANK ENGLISH MATH TOTAL\n");
for (int i = 0; i <n ; ++i) {
printf("%4d%6d%6d%6d\n", i, eigo[i], math[i], gokei[i]);
}
}
Art | Berechnungsbetrag |
---|---|
Worst-Case-Berechnungsbetrag | O(n²) |
Beste Zeitberechnung | O(n) |
Durchschnittlicher Rechenaufwand | O(n²) |
Schlechteste raumzeitliche Berechnung | O(1)Hilfsbereich |
Ich kann es hinzufügen, wenn etwas wieder passiert
Recommended Posts