Tri en programmation C [Fermé]

Signaler
Messages postés
33
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
3 mai 2007
-
 nom -
salut j'ai besoin un grand aide et j'espère que vous pouvez m'aider alors fait le pour moi : je veux ecrire un programme permettant de lire 10 elements d;un vecteur et qui affiche les element de ce vecteur trié en ordre croissant.
merci d'avance pour votre aide
mille merci!!!!

5 réponses

Voila une fonction en C qui vous permettera de faire le tri d'un tableau T de N elements :
void tribulle(int T[], in N)
{ 
     int i,j,temp;
      
     for(i=N-1; i>0 ; i--)
         for(j=1;j<=i;j++)
           {
                 if(T[j-1]>T[j])
                   {
                         temp=T[j-1];
                         T[j-1]=T[j];
                          T[j]=temp;
                   }
           }
}
33
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57822 internautes nous ont dit merci ce mois-ci


merciii :)
he doesn't work
Utilises le tri à bulle.
int tri(int *t, int n)
{
    int i, a=0, b=0;
    do
    {
        for(i=n-1;i>=0;i--)
        {
            if(t[i]>t[i+1])
            {
                a=t[i];
                t[i]=t[i+1];
                t[i+1]=a;
            }
        }
        printf("Etape n°%i\n", b+1);
        affiche(t, n);
        printf("\n");
        b=b+1;
    }while(b!=n);
}
Désolé une erreur de ma part.
A la place du int en début de fonction, il faut mettre void, puisque la fonction ne renvoit rien, elle se contente de modifier les valeurs dans les adresses du pointeur...
Messages postés
367
Date d'inscription
mercredi 20 avril 2005
Statut
Membre
Dernière intervention
19 mai 2006
101
Salut =)

Première solution : tu codes en C++, tu utilises la classe vector dans la librairie standard, et tu auras toutes les fonctions de tri et compagnie.

Deuxième solution : ben trier toi-même... ;-) et là, il y a un pleins de méthodes de tri.
la plus simple est le tri à bulle et tu trouveras l'algo ici :
http://frosch74.free.fr/old/FR/teaching/cpplab/tpCpp_04/tri_recherche.html

bon courage :-D
Messages postés
564
Date d'inscription
vendredi 5 mars 2004
Statut
Membre
Dernière intervention
30 octobre 2005
113
Salut,
En C tu disposes de la fonction qsort.
Tu trouveras des exemples ici: http://www.lri.fr/~aze/page_c/aide_c/qsort.html

A++
//une seule boucle
#include <stdio.h>


int main(int argc, char *argv[])
{

int t[4]={2,1,7,6},i,max=0;

for(i=0;i<4;i++)

{

if(t[i]>t[i+1]){

max=t[0];
t[0]=t[i+1];
t[i+1]=max;

}

printf("%d\n",t[i]);

}

  
getch();
}
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 688
Bravo, tu as réussi à pondre un algorithme en O(n) avec une meilleure complexité que le tri rapide O(n log (n)).
Ton algorithme ne marchera pas dans des cas plus complexes.
Il faut une double boucle pour faire un tri.
vous avez donné une solution de tri en c, j l'a veux en pascal
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 688
Merci d'ouvrir un post.
Messages postés
1589
Date d'inscription
lundi 19 mars 2012
Statut
Membre
Dernière intervention
3 août 2012
277
"j l'a veux en pascal"
Alors demandez la correctement, nous ne sommes pas des machines mais des bénévoles.