#include <stdio.h> main() { /* Déclarations */ int A[50]; /* tableau donné */ int N; /* dimension */ int I; /* rang à partir duquel A est trié */ int J; /* indice courant */ int AIDE; /* pour la permutation */ int FIN; /* position où la dernière permutation a eu lieu. */ /* permet de ne pas trier un sous-ensemble déjà trié. */ /* Saisie des données */ printf("Dimension du tableau (max.50) : "); scanf("%d", &N ); for (J=0; J<N; J++) { printf("Elément %d : ", J); scanf("%d", &A[J]); } /* Affichage du tableau */ printf("Tableau donné :\n"); for (J=0; J<N; J++) printf("%d ", A[J]); printf("\n"); /* Tri du tableau par propagation de l'élément maximal. */ for (I=N-1 ; I>0 ; I=FIN) { FIN=0; for (J=0; J<I; J++) if (A[J]>A[J+1]) { FIN=J; AIDE=A[J]; A[J]=A[J+1]; A[J+1]=AIDE; } } /* Edition du résultat */ printf("Tableau trié :\n"); for (J=0; J<N; J++) printf("%d ", A[J]); printf("\n"); return 0; }