Fonction Tri à Bulle
Concept:
Le tri par bulles ou tri par propagation est un algorithme de tri qui consiste �a
faire remonter progressivement les plus grands �el�ements d'un tableau.
L'algorithme parcourt le tableau, et compare les couples d'�el�ements successifs.
Lorsque deux �el�ements successifs ne sont pas dans l'ordre, ils sont �echang�es.
Apr�es chaque parcours complet du tableau, l'algorithme recommence
l'op�eration. Lorsqu'aucun �echange n'a lieu pendant un parcours, on arr^ete alors
l'algorithme (cela signifie que le tableau est trié ).
fonction triBulle(tableau T, entier n)
R�ep�eter
echangeE�ectu�e = faux;
Pour j de 0 �a n - 2
Si T[j] > T[j + 1], alors
�echanger T[j] et T[j + 1];
�echangeE�ectu�e = vrai;
FinSi
FinPour
Jusqu'a ( echangeE�ectu�e =Faux )
FinFonction
Code En C
printf("tri a bulle \n");
printf("\n");
for(i=0;i<n;i++) // i c'est l'indice pour parcourir le tableau
{
printf("T[%d]=",i);
scanf("%d",&T[i]);
}
printf("le tableau avant le tri :\n");
for(i=0;i<n;i++) // n c'est la taille du tableau
{
printf("%d \t",T[i]);
}
for( j=0;j<n;j++)
{
for(i=0;i<n-1;i++)
{
if( T[i] > T[i+1] )
{
a=T[i+1];
T[i+1]=T[i];
T[i]=a;
}
k++;
}
}
printf("\n\n");
printf("le tableau apres le tri: \n");
for(i=0;i<n;i++)
{
printf("%d \t",T[i]);
}
printf("\n");
Code En C avec pointeurs
int t[55],n,a,drop,k=0,i;
int *Pt,*Pb;
printf("taille \n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("t[%d]= ",i);
scanf("%d",&t[i]);
}
do
{
for(Pt=&t[1];Pt-t<n;Pt++)
{
drop=0;
for(Pb=&t[n-1];Pb>=Pt;Pb--)
{
if(*Pb < *(Pb-1))
{
a=*(Pb-1);
*(Pb-1)=*Pb;
*Pb=a;
drop=1;
}
}
}
k++;
}
while(drop==1 && k!=n-1);
for(Pt=t;Pt-t<n;Pt++)
printf("%d ",*Pt);
Commentaires
Enregistrer un commentaire