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
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
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 .Envoyé par souviron34
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
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...
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.
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 :
A plus !
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
Merci pour vos conseils , j'ai résolu le probleme
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager