Maison > développement back-end > C++ > Expliquer le processus de tri de sélection en langage C

Expliquer le processus de tri de sélection en langage C

王林
Libérer: 2023-09-01 13:57:07
avant
975 Les gens l'ont consulté

Le tri par sélection est un algorithme agressif utilisé pour trouver le plus petit nombre d'un tableau et le placer en première position. Le prochain tableau à parcourir commencera à l'index, près de l'endroit où est placé le plus petit nombre.

Le processus de tri par sélection

  • sélectionne le premier plus petit élément de la liste des éléments et le place en première position.

  • Répétez la même opération pour les éléments restants de la liste jusqu'à ce que tous les éléments soient triés.

Considérez la liste suivante-

Expliquer le processus de tri de sélection en langage C

Premier passage

Sm = a[0] = 30 Sm
Copier après la connexion

a[1] < sm $square$ $square$ 50 <30 (F) $square$ $square$ 30< sm $square$ $square$ 50 <30 (F) $square$ $square$ 30

a[2 ] < sm $square$ $ square$ 40 <30 (F) $square$ $square$ 20$square$ Échangez a[0] avec la valeur sm< sm $square$ $ square$ 40 <30 (F) $square$ $square$ 20$square$ 将 a[0] 与 sm 值交换

a[3] < sm $square$ $square $ 10 < 30 ( T) $square$ $square$ 10< sm $square$ $square $ 10 <30 (T) $square$ $square$ 10

a[4] < sm $square$ $square$ 20<10 (F) $square$ $square $10< sm $square$ $square$ 20<10 (F) $square$ $square 10 美元

10 50 40 30 20
Copier après la connexion

Deuxième passe

Expliquer le processus de tri de sélection en langage C

Sm = a[1] = 50 sm
Copier après la connexion

a[2] < sm $square$ $square$ 40 <50 (T) $square$ 40 $square$< sm $square$ $square$ 40 <50 (T) $square$ 40 $square$

a[3] < sm $square$ $ square$ 30 <40 (T) $square$ 30 sera un[1] est échangé avec sm value< sm $square$ $ square$ 30 <40 (T) $square$ 30 将 a[1] 与 sm 值交换

a[4] < sm $square$ $square$ 20<30 (T) $ square$ 20< sm $square$ $square$ 20<30 (T) $ 平方$ 20

10 20 40 30 50
Copier après la connexion

La troisième fois

Expliquer le processus de tri de sélection en langage C

Sm = a[2] = 40 Sm
Copier après la connexion

a[3] < $ $square$ 30 <40 (T) $square$ $square$ 40

a[4] < sm $square$ $square$ 50<40 (F) $square$ $square$ 30 échange La traduction chinoise de a[2] avec la valeur sm

est :

a[3] < sm $square$ $square$ 30 <40 (T) $square$ $square$ 40

a[4] < $ $square$ 50<40 (F) $square$ $square$ 30 Utilisez la valeur sm pour échanger un[2]

10 20 30 40 50
Copier après la connexion

Quatrième fois

Expliquer le processus de tri de sélection en langage C

Sm = a[3] = 40 Sm
Copier après la connexion

a[4] < 50 <40 (F) $square$ 40 $square$ échanger a[3] avec une valeur sm

Procédure

Veuillez vous référer aux étapes ci-dessous pour sélectionner et trier.

for (i=0; i<n-1; i++){
   sm=i;
   for (j=i+1; j<n; j++){
      if (a[j] < a[sm])
         sm=j;
      }
      t=a[i];
      a[i] = a[sm];
      a[sm] = t;
   }
}
Copier après la connexion

Exemple

Ce qui suit est un programme C pour la technique de tri par sélection −

#include<stdio.h>
int main(){
   int a[50], i,j,n,t,sm;
   printf("enter the No: of elements in the list:</p><p>");
   scanf("%d", &n);
   printf("enter the elements:</p><p>");
   for(i=0; i<n; i++){
      scanf ("%d", &a[i]);
   }
   for (i=0; i<n-1; i++){
      sm=i;
      for (j=i+1; j<n; j++){
         if (a[j] < a[sm]){
            sm=j;
         }
      }
      t=a[i];
      a[i]=a[sm];
      a[sm]=t;
   }
   printf ("after selection sorting the elements are:</p><p>");
   for (i=0; i<n; i++)
      printf("%d\t", a[i]);
   return 0;
}
Copier après la connexion

Sortie

Lorsque le programme ci-dessus est exécuté, les résultats suivants sont produits -

enter the No: of elements in the list:
4
enter the elements:
45
12
37
68
after selection sorting the elements are:
12 37 45 68
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal