Heim  >  Artikel  >  So implementieren Sie einen Auswahlsortierungsalgorithmus in der Sprache C

So implementieren Sie einen Auswahlsortierungsalgorithmus in der Sprache C

清浅
清浅Original
2019-04-09 11:53:0239612Durchsuche

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.

So implementieren Sie einen Auswahlsortierungsalgorithmus in der Sprache C

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

So implementieren Sie einen Auswahlsortierungsalgorithmus in der Sprache C

[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:

So implementieren Sie einen Auswahlsortierungsalgorithmus in der Sprache C

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

In Verbindung stehende Artikel

Mehr sehen