Trier plusieur tableau

Résolu
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013 - 2 févr. 2010 à 18:56
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013 - 9 févr. 2010 à 15:03
Bonjour

je dois trier plusieur tableau a partir d'un seul. Exemple j'ai un tableau int , un tableau double et un char, je dois les trier par ordre croissant du premier tableau mais j'ai aucune idées comment faire. Merci d'avance de votre aide !

a[] int {5,2,4,1,3}
b[] double {2.0,3.0,4.0,5.0,1.0}
c[] char {c,e,a,b,d}

je dois avoir

a[] int {1,2,3,4,5}
b[] double {5.0,3.0,1.0,4.0,2.0}
c[] char {b,e,d,a,c}

5 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 48
3 févr. 2010 à 11:09
Salut

Il suffit de faire un tri sur le premier tableau et d'effectuer les mêmes opérations sur les autres tableaux.

Par exemple, avec un simple tri bulle (rappelons que c'est loin d'être l'algo le plus rapide, car de complexité O(n²)) :

do
{
    bool enDesordre = false;
    for (int j = 0; j < a.Length - 1; j++)
    {
        if(a[j] > a[j + 1])
        {
            int iTemp = a[j];
            a[j] = a[j + 1];
            a[j + 1] = iTemp;
            double dTemp = b[j];
            b[j] = b[j + 1];
            b[j + 1] = dTemp;
            char cTemp = c[j];
            c[j] = c[j + 1];
            c[j + 1] = cTemp;
            enDesordre = true;
        }
    }
} while(enDesordre);


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
3
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013
4 févr. 2010 à 03:46
Merci beaucoup pour ta réponse Krimog ! you're the best !!
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
8 févr. 2010 à 22:25
Pourquoi ne pas utiliser la méthode Sort 'toute faite' qui utilise probablement un quicksort? [O(n log(n))] ????


[hr]
-Site personnel-
-Blog-
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 48
9 févr. 2010 à 09:50
@Bidou : Le problème est qu'il faut effectuer les mêmes opérations sur plusieurs listes (ou tableaux). Je ne vois pas comment faire excepté en créant une liste d'objets ayant 3 valeurs et en redéfinissant la méthode de comparaison.
C'est sûr que ce serait plus efficace, mais mon exemple n'est justement qu'un exemple. Je ne cherchais pas le plus rapide, mais juste le plus simple.

PS : Oui, je confirme que la méthode Sort utilise l'algo quicksort

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0

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

Posez votre question
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013
9 févr. 2010 à 15:03
Merci Bidou pour ta suggestion,
mais j'ai déjà appliquer cette façon de faire a mon programme et ca marche bien, par contre j'ai enlever condition booléenne et j'ai fais l`appel de la méthode en récursivité à la fin.
Merci encore !
0
Rejoignez-nous