Comment vérifier si un tableau a des doublons?
Je suis en train de lire le contenu du fichier dans un 9 élément de tableau. J'ai besoin de vérifier s'il y a des doublons dans ce tableau. J'ai besoin de faire cela sans réorganisation ou la modification de la tout le contenu de la matrice.
Comment pourrais-je aller sur le faire?
Je pense que cette pile de réponse a ce que vous cherchez: stackoverflow.com/questions/9673/remove-duplicates-from-array
double possible de trouver des doublons à partir du tableau de pointeurs
De son c# c! 🙂
Notez que, comme l'écrit votre tableau a 8 éléments, et non pas 9.
Oh oui, désolé de ne pas remarquer que 😛 Mon mauvais.
double possible de trouver des doublons à partir du tableau de pointeurs
De son c# c! 🙂
Notez que, comme l'écrit votre tableau a 8 éléments, et non pas 9.
Oh oui, désolé de ne pas remarquer que 😛 Mon mauvais.
OriginalL'auteur Petefic | 2011-11-20
Vous devez vous connecter pour publier un commentaire.
D'utiliser la force brute.
Vous avez seulement 9 éléments dans le tableau, de sorte qu'il ne faudra 36 comparaisons pour trouver tous les doublons:
sizeof(array)
vous diresizeof(array) / sizeof(array[0])
?Exactement -- merci pour la capture.
La première et la boucle externe seulement besoin d'aller jusqu'à
count - 1
, parce que sinon, la boucle interne à la dernière itération est complètement inutile. Je vais modifier la réponse à refléter cette amélioration.Dites que vous avez obtenu 9 des éléments dans un tableau et souhaitez comparer chaque paire d'éléments: commencer par le premier, et de le comparer à chacune des 8 autres éléments dans le tableau. 8 comparaisons jusqu'à présent. Puis passer à la deuxième. Pas besoin de le comparer à la première question, vous l'avez déjà fait, afin de comparer pour chacun des 7 autres éléments. Répétez ce processus et vous vous retrouverez avec 8+7+6+5+4+3+2+1=36 comparaisons. Et c'est exactement ce que le code ci-dessus ne.
Je pourrais, mais je vais répondre à une question différente de celui que l'OP a demandé, et nous avons beaucoup d'autres en langage C des questions sur la recherche d'éléments uniques, en supprimant les doublons, etc. En fait, si vous rechercher des questions en utilisant les balises c et les doublons, vous trouverez (comme je l'ai écris ceci) 113 questions. Le meilleur non-brute-forcer la solution dépendra de la question, par exemple: avez-vous juste besoin de détecter les dupes ou les supprimer en place, ou en créer un nouveau tableau de valeurs uniques? Si vous avez une question spécifique, demandez-lui.
OriginalL'auteur Caleb
Vous pouvez utiliser cette méthode:
$
n'est pas un caractère valide en C identifiants par la norme, bien que votre compilateur peut se produire à l'appui. Oh, et vous avez accès à un non-existant élément de tableau,array[9]
quandi=8
.Où avez-vous vu le $?
Le Q dit la réorganisation de la matrice n'est pas acceptable. Vous pouvez copier le tableau de la première, de sorte que la copie, et ensuite chercher les doublons à l'aide de votre code ci-dessus, mais ce ne serait pas vous dire quels indices dans le tableau d'origine sont les doublons.
L'OP n'est pas demander de l'index. Il fait veux juste savoir si il y a un doublon.
OriginalL'auteur Aurelio De Rosa
OriginalL'auteur mikered159