Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
905 connectés 

 


Dernière réponse
Sujet : Question en Algo pour les balezes, que la Force soit avec vous!!!!!!!!
ethernal void tri_bulle(int tab[], int bi ,int bs)
{
 int  ic = bs-1, idp=ic, temp;
 while (ic>= bi)
  {
   while ((ic<bs) && (tb[ic]>tb[ic+1]))
    {
     temp = tab[ic+1];
     tab[ic+1] = tab[ic];
     tab[ic] = temp;
     ic++;
    }
   idp--;
   ic=idp;
 }
}
 
ou
 
void tri_bulle2(int t[], int bi, int bs)
{
 int ib, ic, idp, x;
 for (ib=bi ; ib<bs; )
  {
   for (ic=bs, idp=bs ; ic>ib ; ic--)
    if (t[ic]<t[ic-1])
      {
       x= t[ic];
       t[ic]= t[ic-1];
       t[ic-1]= x;
       idp= ic;
      }
    ib= idp;
   }
}
 
le plus rapide :
void tri_rapide(int tab[], int bi, int bs)
{
 int x= tab[(bi+bs)/2], sav, g= bi, d= bs;
 do
  {
   while (tab[g]<x) g++;
   while (tab[d]>x) d--;
   if (g<=d) {
     sav = tab[g];
     tab[g]= tab[d];
     tab[d] = sav;
     g++; d--;
    }
  } while (g<=d);
  if (bi<d) tri_rapide(tab,bi,d);
  if (g<bs) tri_rapide(tab,g,bs);
}

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
ethernal void tri_bulle(int tab[], int bi ,int bs)
{
 int  ic = bs-1, idp=ic, temp;
 while (ic>= bi)
  {
   while ((ic<bs) && (tb[ic]>tb[ic+1]))
    {
     temp = tab[ic+1];
     tab[ic+1] = tab[ic];
     tab[ic] = temp;
     ic++;
    }
   idp--;
   ic=idp;
 }
}
 
ou
 
void tri_bulle2(int t[], int bi, int bs)
{
 int ib, ic, idp, x;
 for (ib=bi ; ib<bs; )
  {
   for (ic=bs, idp=bs ; ic>ib ; ic--)
    if (t[ic]<t[ic-1])
      {
       x= t[ic];
       t[ic]= t[ic-1];
       t[ic-1]= x;
       idp= ic;
      }
    ib= idp;
   }
}
 
le plus rapide :
void tri_rapide(int tab[], int bi, int bs)
{
 int x= tab[(bi+bs)/2], sav, g= bi, d= bs;
 do
  {
   while (tab[g]<x) g++;
   while (tab[d]>x) d--;
   if (g<=d) {
     sav = tab[g];
     tab[g]= tab[d];
     tab[d] = sav;
     g++; d--;
    }
  } while (g<=d);
  if (bi<d) tri_rapide(tab,bi,d);
  if (g<bs) tri_rapide(tab,g,bs);
}
MrReg et le tri par insertion, vous  pensez à celui là  :pt1cable:  :pt1cable:
camarchepoa :hello:  
en fait il faut comprendre ce qu'il faut faire en principe, apres c  pas trop dur
 
il faut donc faire "remonter" les nbs les plusgrands vers la droite donc parcourir le tableau autant de fois qu'il y a de case et a chaque fois comparer le nb a celui d'apres et eventuellement les inverser .... a dire sans respirer  :pt1cable:  :hap:  
 
et voila !!!  :sol:
kadreg C'est bien tout ça, mais ça vaut pas le bogo tri   :crazy:
super_taiwan :lol:
bjone y'a le tris à plomb aussi, allusion à l'époque des pirates qd tu te prenais des boulets sur la gueule :D
 
non je déconne, mais je crois avoir vu des mecs donné ce nom au tri à bulle inversé (dans l'autre sens kwa).
myblood si je crois tri a bulle c une metaphore sur les bulles du champagne qui remonte a la surface.
jkay En algo, a version optimisée, pour trier un tableau V[1..n] :
 
 
i,j : entier;
onapermuté : booléen;
 
debalgo
  onapermuté := vrai;
  j := 1;
  i := n-1;
  tantque onapermuté et i>=j faire
    onapermuté := faux;
    pour i:=n-1 bas j faire
      si V[i]<V[i+1] faire permut(V[i],V[i+1]); onapermuté:=vrai;
      finsi;
    finfaire;
    j := j+1;
  finfaire;
 
Et voilà. Enfin, je crois, je suis plus sur de mon i>=j... a tester donc...
mais sinon, ca doit être ca.
Buitoni

super_taiwan a écrit a écrit :

Merci à tous ceux ki m'ont aider précédemment  :hello:  
 
 
S ke kelkun a d'autres solutions?  :sweat:
 
 :bounce:  
 
Bye  :hello:  




 
Bleh? T'as toutes les solutions! :)

super_taiwan Merci à tous ceux ki m'ont aider précédemment  :hello:  
 
 
S ke kelkun a d'autres solutions?  :sweat:
 
 :bounce:  
 
Bye  :hello:
Rasta Knight ou en algo :
 
tant que i > 1
pour i de 1 à (n-1) faire
    si V(i)>V(i+1) alors permuter (V(i),V(i+1));
    fin si
fin pour;
n := n-1
fin tant que
 
avec V le tableau contenant les nombres et de longueur n
et permuter une procédure du type :
 
t := x1;
x1 := x2;
x2 := t;
flo850 aller , je suis gentil en C  
 for(i=0;i<taille-1;i++)
    for(j=i+1;j<n;j++)
       if(tab[i]>tab[j])
       {
           tmp=tab[i];
           tab[i]=tab[j];
           tab[j]=tmp;
       }
 
si c un grd nombre , et pas un tableau tupeux toujours creer le tableau ( pas trop dur ) faire le tri et reconstruire un nombre
JWhy http://www.google.com/search?q=tri+a+bulle
super_taiwan Salut à tous vous balèzes en Algo:
Voilà le moment de montrer votre vrai valeur  ;) :
 
Question :  
le Tri à Bulles de "38522231", j'espère que vous en connaissez le principe parce que moi j'ai pas compris comment faire, j'ai pas encore l'ame d'un Algorithmicien (ca s'écrit comme ca :??: )
 
 
Mais à la fin de cet algo on doit avoir 12223358, alors comment :pt1cable:  ?  :sweat:  
 
Heu bah  :heink: je c aps!  :(  
 
Merci de ton aide Young Skywalker!!!!!!!!  :hello:

Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR