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

Posts les plus consultés de ce blog

الحلقة 3:اختراق الشبكة اللاسلكية الويفي من نوع WEP