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 :

Detection de doublons dans un tableau


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 18
    Points
    18
    Par défaut Detection de doublons dans un tableau
    Comme indiqué sur l'intitulé , je cherche à detecter les doublons dans un tableau d'entier . Concrétement j'ai ceci :

    tab={1,1,2,3,4,2,3,5,6}

    et je voudrais comme résultat

    temp={1,2,3}

    Merci pour votre aide d'avance

  2. #2
    Expert éminent sénior

    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
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    qu'est-ce qui te pose problème ?

    Un petit peu de réflexion de ta part, un exposé de ce à quoi tu penses, et là on pourra t'aider.

    Mais on ne fera pas à ta place

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par souviron34
    qu'est-ce qui te pose problème ?

    Un petit peu de réflexion de ta part, un exposé de ce à quoi tu penses, et là on pourra t'aider.

    Mais on ne fera pas à ta place
    Bein j'ai pensé au truc le plus bete qui soit : parcours le tableau pour chaque element et compter le nombre d'occurence de chaque element .

    Mon souci est plutot comment stocker ces éléments ne connaissant pas leur nombres d'occurences en amont . Je ne suis pas très doué en programmation encore plus en C++ alors soyez clément
    je ne vous ai jamais demandé de le faire à ma place ,juste des idées sur comment procéder

  4. #4
    Expert éminent sénior

    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
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    eh bien puisque tu es sur le forum algorithmie expose la manière dont tu conçois l'algo. Ensuite on en discuteras. Et ensuite tu l'implémenteras avec le langage de ton choix...

  5. #5
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    En fait, il s'agit d'un problème classique d'algorithmique, suivant les lieux ou les endroits cela à plusieurs noms. J'appelle cela le problème des plateaux. Il existe de (très) nombreuses variantes (avec des suppositions plus ou moins importantes sur les entrées et sur les méthodes).

    Ici, ce que tu nous donnes, c'est un tableau qui n'est pas trié. La première chose à faire serait de trier ton tableau. Une fois ton tableau trié, tu peux rapidement éliminer les doublons dans le tableau. La complexité globale de cette opération sera en O(n log n), c'est le tri qui va borner la complexité.

    Tu peux aussi faire plus rapide en connaissant plus de choses à priori. Tu peux utiliser la méthode du tri postal : si tu sais que ton tableau va contenir des éléments entre 1 et n, tu crées un tableau T1 à n cases que tu initialises à 0; ensuite tu parcours ton tableau dans lequel tu veux enlever les doublons à si tu tombes sur le nombre i, tu incrémentes la ième case du tableau T1. Une fois passer tous les éléments, tu vas obtenir un tableau dans lequel il y aura à 0 les nombres qui n'apparaissent pas et des cases avec des nombres supérieurs à 0 les nombres qui apparaissent.

    Il existe bien d'autres méthodes suivant le problème qui a été posé. Si tu as d'autres questions, n'hésite pas.

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 390
    Points : 1 777
    Points
    1 777
    Par défaut
    Salut !

    On peut utiliser deux listes dans le raisonnement.
    La première liste sert à effectuer un tri (sans que le tableau soit modifié)
    La deuxième liste sert à engranger les doublons.

    On déroule comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Ajouter tous les éléments du tableau à Liste1.
    Trier Liste1.
    Tant qu'il reste un élément pour Liste1
        si un élément (n) et identique à son suivant (n+1)
        on l'ajoute à Liste2
        on avance tant que les suivants sont identiques (doublons ou plus)
        fin si
    fin
    A plus !

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Merci pour vos conseils , j'ai résolu le probleme

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/03/2007, 18h29
  2. [Tableaux] Rechercher les doublons dans un tableau
    Par jym_22 dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2006, 09h47
  3. [Tableaux] Retirer des doublons dans un tableau
    Par Xunil dans le forum Langage
    Réponses: 2
    Dernier message: 07/11/2006, 18h04
  4. Eliminer les doublons dans un tableau d'entiers
    Par engi dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 21/03/2006, 13h59
  5. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21

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