Tri en programmation C [Fermé]

Messages postés
33
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
3 mai 2007
- - Dernière réponse :  nom - 15 févr. 2018 à 13:46
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!!!!
Afficher la suite 

5 réponses

Meilleure réponse
30
Merci
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;
                   }
           }
}

Dire « Merci » 30

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

CCM 55251 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
96
2
Merci
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
109
1
Merci
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++
0
Merci
//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();
}
fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1586 -
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.
0
Merci
vous avez donné une solution de tri en c, j l'a veux en pascal
fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1586 -
Merci d'ouvrir un post.
LeChikito
Messages postés
1717
Date d'inscription
lundi 19 mars 2012
Statut
Membre
Dernière intervention
3 août 2012
224 -
"j l'a veux en pascal"
Alors demandez la correctement, nous ne sommes pas des machines mais des bénévoles.