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 :

Comparaison de Tableaux


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Currahee
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 157
    Par défaut Comparaison de Tableaux
    Bonjour,

    Quelqu'un connaitrait-il un algorithme permettant la comparaison de deux tableaux triés. Je m'explique:

    Les deux Tableaux ont chacun deux colonnes : la premiere représente un identifiant, la seconde un libellé

    L'algo doit permettre de :
    - recenser dans le deuxième tableau les nouveaux enregistrements (nouveaux identifiants)
    - recenser les enregistrements du premier tableau qui ont été supprimés
    - quand un enregistrement existe dans les deux tableaux, regarder s'il a été modifié (comparaison sur la colonne libellé)

    On m'a dit que c'était possible sur une seule passe, mais je ne trouve pas l'algo sur le net et ai du mal à le retrouver par moi-même

    Merci d'avance à ceux qui connaissent cet algo

  2. #2
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut
    Tes tableaux sont-ils TRIES par rapport à la 1ière colonne??

  3. #3
    Membre confirmé Avatar de Currahee
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 157
    Par défaut
    Citation Envoyé par Nemerle
    Tes tableaux sont-ils TRIES par rapport à la 1ière colonne??
    Oui c'est ça

  4. #4
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut
    Tu as 2 tableaux T1 et T2.Rapidement, tu prends deux entiers i=j=1:

    - tu regardes si T1.ID[i] = T2.ID[i].
    - Si oui, tu checkes si il y a eu modification du libellé. Ensuite tu fais i=i+1, j=j+1
    - Si non, il y a eu suppression! Ensuite tu fais i=i+1

    Quand tout T1 est lu, les éléments de T2 qui restent sont les nouveaux!

  5. #5
    Membre confirmé Avatar de Currahee
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 157
    Par défaut
    Citation Envoyé par Nemerle
    Tu as 2 tableaux T1 et T2.Rapidement, tu prends deux entiers i=j=1:

    - tu regardes si T1.ID[i] = T2.ID[i].
    - Si oui, tu checkes si il y a eu modification du libellé. Ensuite tu fais i=i+1, j=j+1
    - Si non, il y a eu suppression! Ensuite tu fais i=i+1

    Quand tout T1 est lu, les éléments de T2 qui restent sont les nouveaux!
    Imaginons l'apparition d'un nouvel élément dans le nouveau tableau (ici B):

    vieux(0, 0) = "A"
    vieux(1, 0) = "C"
    vieux(2, 0) = "D"
    vieux(3, 0) = "E"
    .....

    nouveau(0, 0) = "A"
    nouveau(1, 0) = "B"
    nouveau(2, 0) = "C"
    nouveau(3, 0) = "D"
    nouveau(4, 0) = "E"
    .....

    Premier coup A = A je verifie le libelle puis i+1 , j+1
    Deuxieme coup avec ta proposition : C <> B donc C a disparu ce qui est faux à cause de l'insertion de B qui a décalé C au rang suivant

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    pseudocode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Ouvrir les 2 fichiers
     
    lire ligne vieux
             chercher dans nouveau si ligne
                    si NOT ligne
                           disparu
                    sinon
                        si ligne modifiée
                            modification
                        fin
                    fin
     
    stocker dernier id
     
    fermer vieux
     
    chercher dernier id vieux dans nouveau
    de (dernier id+1) à fin
             nouveau

  7. #7
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut
    Citation Envoyé par Currahee
    Imaginons l'apparition d'un nouvel élément dans le nouveau tableau (ici B):

    vieux(0, 0) = "A"
    vieux(1, 0) = "C"
    vieux(2, 0) = "D"
    vieux(3, 0) = "E"
    .....

    nouveau(0, 0) = "A"
    nouveau(1, 0) = "B"
    nouveau(2, 0) = "C"
    nouveau(3, 0) = "D"
    nouveau(4, 0) = "E"
    .....

    Premier coup A = A je verifie le libelle puis i+1 , j+1
    Deuxieme coup avec ta proposition : C <> B donc C a disparu ce qui est faux à cause de l'insertion de B qui a décalé C au rang suivant
    ok, c'est pas la peine de Si c'est des VRAIS identifiants, tu ne peux pas créer un identifiant entre A et C

    Maintenant, si tu veux que je t'aide, car cet algo est tellement simple qu'un 1iere année d'info sait le faire, je peux rajouter 3 lignes pour fare fonctionner le truc. Ou bien je peux me brosser les cheveux...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comparaison de tableaux
    Par Frog74 dans le forum VBA Access
    Réponses: 7
    Dernier message: 05/05/2008, 15h08
  2. Comparaison de tableaux (PERL + MYSQL + CISCO)
    Par pat94 dans le forum Langage
    Réponses: 5
    Dernier message: 05/10/2007, 15h06
  3. comparaison deux tableaux
    Par bezoindaidde dans le forum Langage
    Réponses: 13
    Dernier message: 06/07/2007, 15h51
  4. Comparaisons de tableaux sur des feuilles différentes
    Par Olanor dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/07/2007, 07h32
  5. [langage] Comparaison de tableaux
    Par WetzlarMan dans le forum Langage
    Réponses: 2
    Dernier message: 22/04/2004, 14h08

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