ALGORITHME DE TRI D'UN TABLEAU PAR ORDRE CROISSANT OU DÉCROISSANT.

gnairod Messages postés 37 Date d'inscription samedi 22 novembre 2008 Statut Membre Dernière intervention 11 avril 2010 - 14 mars 2010 à 12:06
jcr39 Messages postés 1 Date d'inscription dimanche 4 mars 2018 Statut Membre Dernière intervention 4 mars 2018 - 4 mars 2018 à 07:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51438-algorithme-de-tri-d-un-tableau-par-ordre-croissant-ou-decroissant

jcr39 Messages postés 1 Date d'inscription dimanche 4 mars 2018 Statut Membre Dernière intervention 4 mars 2018
Modifié le 4 mars 2018 à 13:16
Une méthode de tri tout aussi efficace

#include <stdio.h>
#include <stdlib.h>

void ordonnerTableau(int tableau[], int tailleTableau);
int main()
{
int tableau[4] = {15,81,22,13};

    ordonnerTableau(tableau, 4);

    return 0;
}

void ordonnerTableau(int tableau[], int tailleTableau)
{
    int i = 0; // Variable Index de boucle lecture tableau
    int d = 0 ; // Variable de décalage Index de boucle lecture tableau
    int tampon = 0;


           {
            printf("\nDEBUT exercice Ordonner\n\n");
            }

//Tri ordre croissant
{
    printf("\n tableau ordre Croissant\n");
}

  for(d=0; d < tailleTableau; d++)

        for(i=d; i < tailleTableau; i++)

            if (tableau [i]<= tableau [d])
            {
            tampon = tableau [d];
            tableau [d]= tableau [i];
            tableau [i] = tampon;
            }

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

            {
            printf("tableau: %i\n", tableau[i]);
            }

//Tri ordre décroissant
{
    printf("\n tableau ordre Décroissant\n");
}
    i = 0; // RAZ Variable Index de boucle lecture tableau pour tri decroissant
    d = 0 ; // RAZ Variable de décalage Index de boucle lecture tableau pour tri decroissant
    tampon = 0;


    for(d=0; d < tailleTableau; d++)
        for(i=d; i < tailleTableau; i++)

            if (tableau [i]>= tableau [d])
            {
            tampon = tableau [d];
            tableau [d]= tableau [i];
            tableau [i] = tampon;
            }


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

            {
            printf("tableau: %i\n", tableau[i]);
            }


            {
            printf("\nFIN exercice Ordonner\n");
            }

}
Thuzhen Messages postés 2 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 17 mars 2010
17 mars 2010 à 16:33
Merci pour ces avis qui m'ont pas mal aidé :)
thebroyeur Messages postés 7 Date d'inscription dimanche 10 décembre 2006 Statut Membre Dernière intervention 8 mai 2010 12
16 mars 2010 à 18:48
Simple tri à bulle comme il a déjà été dit. Essaye de regarder les tri fusions par exemples merge sort en anglais ;)
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
16 mars 2010 à 01:00
Salut,
Gnairod m'a devancé quant au nom de tri à bulle.
Info : &tabl[i] devient tabl+i (à mon avis, c'est un détail parmi d'autre qui permet d'accélérer le temps d'exécution).
Kevin95870 Messages postés 5 Date d'inscription vendredi 6 novembre 2009 Statut Membre Dernière intervention 20 juin 2011
15 mars 2010 à 14:54
bonjour,

essai de regarder du côté des tris par distribution.
Thuzhen Messages postés 2 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 17 mars 2010
14 mars 2010 à 17:57
C'est vrai que je pourrais l'optimiser en évitant la répétition de scan des nombres déjà classés, mais je pense que apars diminuer le temps d'exécution déjà très court ça ne servirait à rien. C'est vrai que la différence est visible au bout d'un certain moment mais bon...
Sur ce je te remercie de m'avoir donné le nom et d'avoir apport une critique objective.
Informatiquement,
Thüzhen.
gnairod Messages postés 37 Date d'inscription samedi 22 novembre 2008 Statut Membre Dernière intervention 11 avril 2010
14 mars 2010 à 12:06
C'est un tri à bulles, c'est sans intérêt dès lors que n > 7 car la complexité de l'algorithme est dans le cas moyen proportionnel à 1/2 * n^2, de plus il existe beaucoup de source sur cet algorithme. Essaye de proposer quelque chose avec plus d'intérêt. Je te mets la moyenne pour la note.
Rejoignez-nous