Menu

Tri en programmation C [Fermé]

infobens 33 Messages postés jeudi 10 juin 2004Date d'inscription 3 mai 2007 Dernière intervention - 22 juil. 2005 à 16:02 - 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 

13 réponses

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

Merci serenere 25

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 24296 internautes ce mois-ci

charming zayneb - 4 janv. 2012 à 14:26
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...
Luffy =) 367 Messages postés mercredi 20 avril 2005Date d'inscription 19 mai 2006 Dernière intervention - 22 juil. 2005 à 16:17
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
Ravachol 565 Messages postés vendredi 5 mars 2004Date d'inscription 30 octobre 2005 Dernière intervention - 22 juil. 2005 à 16:29
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 11141 Messages postés samedi 5 mai 2007Date d'inscriptionContributeurStatut 18 octobre 2016 Dernière intervention - 28 févr. 2012 à 00:33
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 11141 Messages postés samedi 5 mai 2007Date d'inscriptionContributeurStatut 18 octobre 2016 Dernière intervention - 22 mai 2012 à 08:37
Merci d'ouvrir un post.
LeChikito 1717 Messages postés lundi 19 mars 2012Date d'inscription 3 août 2012 Dernière intervention - 22 mai 2012 à 08:40
"j l'a veux en pascal"
Alors demandez la correctement, nous ne sommes pas des machines mais des bénévoles.