[GO] Schriftliche Auswahlsortierung in C.

Selektive Sortierung (C-Sprache)

Was ist selektive Sortierung?

-In-Place-Integer-Algorithmus. Die selektive Sortierung eignet sich für kleine Dateien.

Vorteil

· Einfach zu verstehen · Sortierung vor Ort (kein zusätzlicher Speicher erforderlich) ・ Schneller als Blasensortierung

Nachteil

・ Verschlechterung des Berechnungsbetrags aufgrund der Skala: O (n²)

Gesamtdurchfluss

  1. Suchen Sie den minimalen (maximalen) Wert in der Liste.
  2. Tauschen Sie den Wert an der aktuellen Position aus.
  3. Wiederholen Sie diesen Vorgang für alle Elemente, bis das gesamte Array ausgerichtet ist.

In Umsetzung

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.

Code

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]);
    }
}

Berechnungsbetrag sortieren

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

Schriftliche Auswahlsortierung in C.
Ich habe die Warteschlange in Python geschrieben
Ich habe den Stack in Python geschrieben
Ich habe den Gleitflügel in der Schöpfung geschrieben.
Ich habe versucht, eine selektive Sortierung in Python zu implementieren
Ich habe Python auf Japanisch geschrieben
Ich habe die Grundoperation von Seaborn im Jupyter Lab geschrieben
Ich habe versucht, die Zeit und die Zeit der C-Sprache zu veranschaulichen
Ich habe es in der Sprache Go geschrieben, um das SOLID-Prinzip zu verstehen
Ich habe die Grundoperation von Numpy im Jupyter Lab geschrieben.
Implementierte den Algorithmus von "Algorithm Picture Book" in Python3 (Selective Sort)
Ich habe ein Skript geschrieben, das das Bild in zwei Teile teilt
Sortierwarnung in der Funktion pd.concat
Ich habe an der ISUCON10-Qualifikationsrunde teilgenommen!
Ich habe Fizz Buzz in Python geschrieben
Ich habe Gray Scale mit Pytorch geschrieben
SelectionSort
Ich habe den Code geschrieben, um den Brainf * ck-Code in Python zu schreiben
Implementieren Sie einen Teil des Prozesses in C ++
Ich habe versucht, die verkratzten Daten in CSV zu speichern!
Ich kann das Element in Selen nicht bekommen!
Ich habe den Code für Gibbs Sampling geschrieben
[Python-Anfänger] Ich habe die Artikel gesammelt, die ich geschrieben habe
Ich habe Project Euler 1 in einem Liner geschrieben.
[C-Sprache] Ich möchte Zufallszahlen im angegebenen Bereich generieren
Ich möchte eine Liste in der Reihenfolge anderer Listen sortieren
AOJ Sort I-
Verwendung der C-Bibliothek in Python
[Python] Sortieren Sie die Liste von pathlib.Path in natürlicher Reihenfolge
Ein Memo, das ich schnell in Python geschrieben habe
[Basic Information Engineer Examination] Ich habe den Algorithmus der euklidischen Methode der gegenseitigen Teilung in Python geschrieben.
Ich habe versucht, "Birthday Paradox" mit Python zu simulieren
Ich habe die Methode der kleinsten Quadrate in Python ausprobiert
Ich habe eine Klasse in Python3 und Java geschrieben
Ich habe matplotlib geschrieben
Geschrieben "Einführung in die Effektüberprüfung" in Python
Beachten Sie, dass ich den Algorithmus der kleinsten Quadrate verstehe. Und ich habe es in Python geschrieben.
Ich kann keine Zeichen in den Textbereich eingeben! ?? !! ?? !! !! ??
Ich habe ein PyPI-Modul geschrieben, das den Parameterstil in Pythons sqlite3-Modul erweitert
Ich habe ein Designmuster in der Kotlin Prototype Edition geschrieben
Ich habe versucht, die inverse Gammafunktion in Python zu implementieren
Ich habe versucht, ein Python 3-Modul in C hinzuzufügen
Ich habe einen japanischen Parser auf Japanisch mit Pyparsing geschrieben.
Ich habe den im Qiita Adventskalender 2016 gelöschten Kalender überprüft
Ich habe versucht, Human In The Loop zu implementieren - Teil ① Dashboard -
Ich möchte den Fortschritt in Python anzeigen!
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
In Python sortieren. Lassen Sie uns als nächstes über den Algorithmus nachdenken.
Ich habe ein Designmuster in der Kotlin Factory Edition geschrieben
Ich habe versucht, Google Test und CMake in C zu verwenden
Ich habe ein Designmuster in der Kotlin Builder Edition geschrieben
Ich habe ein Designmuster in der Kotlin Singleton Edition geschrieben
Ich habe ein Designmuster in der Kotlin Adapter Edition geschrieben
Ich habe ein Designmuster in Kotlin geschrieben, das von Iterator bearbeitet wurde
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich hatte das Gefühl, dass ich den Python-Code nach C ++ 98 portiert habe.
[Hinweis] Das installierte Modul kann nicht im Jupiter aufgerufen werden.
Ich habe ein Designmuster in der Kotlin Template Edition geschrieben
Was ich durch die Teilnahme am ISUCON10-Qualifying gelernt habe
Ich möchte R-Datensatz mit Python verwenden