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.
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-
Sm = a[0] = 30 Sm
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
Sm = a[1] = 50 sm
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
Sm = a[2] = 40 Sm
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
Sm = a[3] = 40 Sm
a[4] < 50 <40 (F) $square$ 40 $square$ échanger a[3] avec une valeur sm
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; } }
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; }
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
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!