[C++]tri par propagation

Résolu
Carnat89 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
 futursoa -
Bonjour,

Voila des heures que j'essai de mettre en place un tri par propagation. Mais je n'y arrive pas...J'ai beau retourner le programme dans tous les sens, rien a faire, je ne comprend pas pourquoi cela ne fonctionne pas...

C'est pourquoi je viens vous demander votre aide. Je pense que l'erreure ne dois pas petre monstrueuse mais suffisement annodine pour m'échaper. Voici le code :

for (i=N;i>2;i--)
{
for (j=1;j<i;j++)
{
if (Tab[j]>Tab[j+1])
{
temp=Tab[i];
Tab[i]=Tab[i+1];
Tab[i+1]=temp;
}
}
}


Est ce que qqn vois une solution ? Merci d'avance.
A voir également:

6 réponses

Carnat89 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   2
 
J'ai fini par trouver la solution...c'est encore moi qui m'obstine a faire des boucle FOR alors qu'ici une boucle DO...WHILE est plus logique...enfin pour les interessés :

do
{
for (j=0;j<N-1;j++)
{
if (Tab[j]>Tab[j+1])
{
temp=Tab[j];
Tab[j]=Tab[j+1];
Tab[j+1]=temp;
i=0;
}
}
i++;

}
while (i<N);
2
Fhiter13 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention  
 
Je croit que.... je prefere ne pas trop m'avancer et dire de bêtises donc je recommande encore ( désolé pour la pub ) lesiteduzero.com ils ont un bon dossier C++ et ils sont plus qualifiés pour t'aider je pense.

Bonne chance
0
Carnat89 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci beaucoup Fhiter 13, je vais aller voire.

Sinon une petite correstion :

for (i=N;i>2;i--)
{
for (j=1;j<i;j++)
{
if (Tab[j]>Tab[j+1])
{
temp=Tab[j];
Tab[j]=Tab[j+1];
Tab[j+1]=temp;
}
}
}
0
Fhiter13 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention  
 
Excuse moi, www.siteduzero.com ;) autant pour moi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fhiter13 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention  
 
Effectivement ^^ Enfin bonne soirée à toi
0
futursoa
 
Et ça? Et c'est avec du FOR:

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;
}
}
0