Maison  >  Article  >  Comment implémenter un algorithme de tri par sélection en langage C

Comment implémenter un algorithme de tri par sélection en langage C

清浅
清浅original
2019-04-09 11:53:0239520parcourir

Les étapes pour mettre en œuvre la méthode de tri par sélection : trouvez d'abord un nombre minimum et placez-le au premier plan ; puis trouvez le plus petit nombre parmi les nombres restants et placez-le devant les nombres restants, puis répétez ceci ; étape jusqu'à ce qu'il suffit d'aligner tous les chiffres.

Comment implémenter un algorithme de tri par sélection en langage C

Étapes pour mettre en œuvre la méthode de tri par sélection : trouver un nombre minimum et l'échanger vers l'avant, puis trouver le plus petit nombre parmi les nombres restants et l'échanger contre le reste Comptez à l'avant et répétez cette étape jusqu'à ce que tous les nombres soient disposés

Comment implémenter un algorithme de tri par sélection en langage C

[Cours recommandés : Tutoriel de langage C ]

La méthode de tri par sélection est une méthode plus courante en langage C. Son efficacité de tri est supérieure à la méthode des bulles et l'algorithme n'est pas compliqué.

L'idée de la méthode de tri par sélection est la suivante :

1 Trouvez le plus petit nombre et échangez-le vers l'avant.

2. Parmi les nombres restants, trouvez le plus petit et échangez-le devant les nombres restants

3. Répétez l'étape 2 jusqu'à ce que tous les nombres soient disposés.

Évidemment, pour un tableau contenant N nombres, le processus nécessite également N-1 fois (0 <= i < N-1).

Pour trouver un numéro minimum, la façon de l'échanger vers l'avant est :

Utilisez d'abord le premier numéro parmi les numéros restants (le numéro de série est i) comme base, utilisez la variable k pour enregistrer son numéro de série, et les numéros suivants sont tour à tour comparés à la base. Si elle est plus petite que la base, utilisez k pour enregistrer son numéro de série (remarque : ne pas échanger pour le moment). . Lorsque tous les nombres sont comparés à la base, k Ce qui est stocké est le numéro de série du plus petit numéro, puis il est échangé vers l'avant (échangé seulement maintenant). Dans le processus ci-dessus, les données ne sont échangées qu'une seule fois, c'est-à-dire qu'elles ne sont échangées qu'une seule fois par voyage.

Exemple :

#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;
}

Rendu :

Comment implémenter un algorithme de tri par sélection en langage C

Résumé : Ce qui précède est l'intégralité du contenu de cet article, Hope ça aide tout le monde

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn