IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

fusionner deux tableaux triés ?


Sujet :

Algorithmes et structures de données

  1. #1
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 751
    Points : 371
    Points
    371
    Par défaut fusionner deux tableaux triés ?
    Salut,
    J'ai deux tableaux d'entiers T1 et T2, ils sont triés
    Je voudrais un algorithme me permettant de fusionner T1 et T2 pour avoir un 3eme tableau T qui lui aussi est trié et ce sans avoir recours aux fonctions/procédures (si possible)
    Merci
    '...parfois l'informatique peut vous rendre fou...'

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    ben tu parcours les 2 tableaux en parallele et tu mets le plus petit a chaque fois dans ton tableau resultat de taille(T1) + taille(T2)...je vois pas trop le probleme..

  3. #3
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 751
    Points : 371
    Points
    371
    Par défaut
    je ne vois pas trop comment tu veux faire, mais j'ai essayé cette solution (du moins une solution que je pense similaire) : le pb c'est qu'on aura des valeurs répétées plusieurs fois dans le nouveau tableau, et d'autres qui ne sont meme pas présentent dans le nouveau tableau !
    Et meme si la méthode marche, je ne vois pas où a-t-on profité du fait que T1 et T2 sont triés ! Je pense que l'algo doit en tenir compte.
    Bref stp essaie de détailler ta proposition sur papier et de faire un petit exemple
    '...parfois l'informatique peut vous rendre fou...'

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    T1 : [1 3 6 7 9]

    T2 : [2 3 4 6 9 10]

    Tres : []

    iteration1 : Tres : [1]
    iteration2 : Tres : [1 2]
    iteration3 : Tres : [1 2 3]
    iteration4 : Tres : [1 2 3 3]
    ...
    Tres : [1 2 3 3 4 6 6 7 9 9 10]

    Tu profites quand meme en quelque sorte du tri initial, pour les doublons il reste pas grand chose a faire pour les virer si tu veux (quand tu compares les valeurs à l'endroit de tes iterateurs, si elles sont egales tu incrementes tes 2 iterateurs sinon un seul).

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Arno a donné la bonne méthode :
    Supposant t1 et t2 en ordre croissant, le code devrait ressembler à ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    i1:=0 ; //  index dans t1
    i2:=0 ; //  index dans t2
    i :=0 ; //  index dans t
    while (i1<high(t1)) or (i2<high(t2) do begin
       if (i2>high(t2) or ((i1<=high(t1)) and (t1[i1]<t2[i2]))  
         then begin t[i]:=t1[i1] ; i1:=i1+1 ; end ;
         else begin t[i]:=t2[i2] ; i2:=i2+1 ; end ;
       i:=i+1 ;
       end ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 751
    Points : 371
    Points
    371
    Par défaut
    je vais tester ... mais est-ce que ça gère les doublons ? sachant qu'on ne doit PAS supprimer les doublons !
    '...parfois l'informatique peut vous rendre fou...'

  7. #7
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Salut,

    Les doublons sont conservés.
    Pour les éliminer, il faudrait par exemple comparer t[i] avec t[i-1].
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  8. #8
    Membre éclairé
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Points : 848
    Points
    848
    Par défaut
    Les arbres binaires seraient utiles pour cela non ? Bon, c'est sur, leur intérêt se sentirait plutôt sur des tableaux de grande taille mais la récursivité simplifierait la vue sur le programme à mon goût.
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

  9. #9
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    Citation Envoyé par panda31
    Les arbres binaires seraient utiles pour cela non ?
    C'est un peu bourrin, alors que cela peut se faire de manière linéaire.

    Cet exercice est un cas d'école classique et la solution proposé par graffito est la meilleure.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  10. #10
    Membre éclairé
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Points : 848
    Points
    848
    Par défaut
    oki
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

Discussions similaires

  1. [MySQL] fusionner deux tableaux par une variable commune pour faire un tuple unique
    Par mickeynad dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 11/04/2010, 10h28
  2. Fusionner deux tableaux
    Par jeronimo83 dans le forum Langage
    Réponses: 2
    Dernier message: 08/09/2008, 11h54
  3. [CS3] fusionner deux tableaux d'orientation différentes
    Par isa68 dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 09/08/2008, 11h18
  4. [Tableaux] Fusionner deux tableaux
    Par nicerico dans le forum Langage
    Réponses: 4
    Dernier message: 06/09/2007, 13h57
  5. [Tableaux] Fusionner deux tableaux
    Par lodan dans le forum Langage
    Réponses: 4
    Dernier message: 09/11/2006, 13h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo