Question en Algo pour les balezes, que la Force soit avec vous!!!!!!!! - Programmation
Marsh Posté le 21-11-2001 à 20:01:24
http://www.google.com/search?q=tri+a+bulle
Marsh Posté le 21-11-2001 à 20:30:19
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
Marsh Posté le 21-11-2001 à 20:59:01
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;
Marsh Posté le 24-11-2001 à 15:30:19
Merci à tous ceux ki m'ont aider précédemment
S ke kelkun a d'autres solutions?
Bye
Marsh Posté le 24-11-2001 à 15:52:15
super_taiwan a écrit a écrit : Merci à tous ceux ki m'ont aider précédemment S ke kelkun a d'autres solutions? Bye |
Bleh? T'as toutes les solutions!
Marsh Posté le 24-11-2001 à 16:26:55
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.
Marsh Posté le 24-11-2001 à 19:01:41
si je crois tri a bulle c une metaphore sur les bulles du champagne qui remonte a la surface.
Marsh Posté le 24-11-2001 à 19:19:08
y'a le tris à plomb aussi, allusion à l'époque des pirates qd tu te prenais des boulets sur la gueule
non je déconne, mais je crois avoir vu des mecs donné ce nom au tri à bulle inversé (dans l'autre sens kwa).
Marsh Posté le 24-11-2001 à 20:33:07
C'est bien tout ça, mais ça vaut pas le bogo tri
Marsh Posté le 25-11-2001 à 18:39:39
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
et voila !!!
Marsh Posté le 26-11-2001 à 00:01:44
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);
}
Marsh Posté le 21-11-2001 à 19:59:02
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 ?
Heu bah je c aps!
Merci de ton aide Young Skywalker!!!!!!!!