Die Schritte zum Implementieren der Auswahlsortiermethode: Suchen Sie zuerst eine Mindestzahl und tauschen Sie sie nach vorne. Finden Sie dann die kleinste Zahl unter den verbleibenden Zahlen und wiederholen Sie dies schließlich Gehen Sie so vor, bis Sie alle Zahlen einfach in einer Reihe haben.
Schritte zum Implementieren der Auswahlsortiermethode: Finden Sie eine Mindestzahl und tauschen Sie sie nach vorne, suchen Sie dann die kleinste Zahl unter den verbleibenden Zahlen und tauschen Sie sie gegen der Rest Zählen Sie vorne und wiederholen Sie diesen Schritt, bis alle Zahlen angeordnet sind
[Empfohlene Kurse: C-Sprach-Tutorial ]
Die Auswahlsortiermethode ist eine häufigere Methode in der C-Sprache. Ihre Sortiereffizienz ist höher als die Blasenmethode und der Algorithmus ist nicht kompliziert.
Die Idee der Auswahlsortiermethode ist:
1. Finden Sie eine Mindestanzahl und tauschen Sie sie nach vorne.
2. Suchen Sie unter den verbleibenden Zahlen die kleinste und tauschen Sie sie vor die verbleibenden Zahlen aus
3 Wiederholen Sie Schritt 2, bis alle Zahlen angeordnet sind.
Für ein Array mit N Zahlen erfordert der Prozess natürlich auch N-1 Mal (0 <= i < N-1).
Um eine Mindestanzahl zu finden, tauschen Sie diese nach vorne aus:
Verwenden Sie zuerst die erste Zahl unter den verbleibenden Zahlen (die Seriennummer ist i). Verwenden Sie als Basis die Variable k, um ihre Seriennummer aufzuzeichnen, und vergleichen Sie die nachfolgenden Zahlen der Reihe nach mit der Basis. Wenn sie kleiner als die Basis ist, verwenden Sie k, um ihre Seriennummer aufzuzeichnen (Hinweis: Zu diesem Zeitpunkt nicht austauschen). Wenn alle Zahlen mit der Basis verglichen werden, wird in k die Seriennummer der kleinsten Zahl gespeichert und dann nach vorne getauscht (erst jetzt ausgetauscht). Bei dem oben genannten Verfahren werden die Daten nur einmal ausgetauscht, das heißt, die Daten werden nur einmal pro Fahrt ausgetauscht.
Beispiel:
#include<stdio.h> #include<stdlib.h> #define N 8 void select_sort(int a[],int n); //选择排序实现 void select_sort(int a[],int n)//n为数组a的元素个数 { //进行N-1轮选择 for(int i=0; i<n-1; i++) { int min_index = i; //找出第i小的数所在的位置 for(int j=i+1; j<n; j++) { if(a[j] < a[min_index]) { min_index = j; } } //将第i小的数,放在第i个位置;如果刚好,就不用交换 if( i != min_index) { int temp = a[i]; a[i] = a[min_index]; a[min_index] = temp; } } } int main() { int num[N] = {89, 38, 11, 78, 96, 44, 19, 25}; select_sort(num, N); for(int i=0; i<N; i++) printf("%d ", num[i]); printf("\n"); system("pause"); return 0; }
Rendering:
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe es wird Ihnen nützlich sein
Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen Auswahlsortierungsalgorithmus in der Sprache C. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!