Bonjour à tous !
Pourriez vous m'expliquer un algorithme de suppression de doublons
dans un tableau
|Nom|Prenom|Adresse|Ville|
Meric d'avance pour vos explications![]()
Jean Marc
Bonjour à tous !
Pourriez vous m'expliquer un algorithme de suppression de doublons
dans un tableau
|Nom|Prenom|Adresse|Ville|
Meric d'avance pour vos explications![]()
Jean Marc
Il faut déjà que tu choisisses le champ que tu désires supprimer.
Alors ensuite, suivant les méthodes, tu as :
-> la bête et méchante, tu regardes chacune des lignes et tu supprimes celles qui sont identiques (au moins sur le champ que tu veux).
-> un peu plus subtil : tu effectues un tri sur le champ que tu veux, puis tu passes en revue toutes tes lignes et les doublons sont forcément à la suite ce qui limite les recherches et permet une opération efficace.
Encore plus subtil : tu crées une clef de hashage sur les colonnes qui doivent être concernées par la suppression des doublons, et tu recopies ton tableau dans une table de hashage en utilisant la clef de hashage créée précédemment.
Ensuite, tu vires les clefs, tu récupères ton tableau, y'a plus de doublons.
Attention, ça reste difficilement applicable sur de très gros tableaux ce qui risque d'être le cas (l'exemple donné fait penser à une table de base de donnée).et tu recopies ton tableau dans une table de hashage en utilisant la clef de hashage créée précédemment.
Si c'est une table de base de donnée, dans ce cas, une clef unique sur les champs concernés, pas besoin de plus...
Sinon, je vois pas trop pourquoi ça ne serait pas applicable sur de grosses tables.
Le problème, c'est l'espace de stockage nécessaire pour ton opération suivante :
Ca ne représente aucun problème si tu as un nombre raisonnable de valeurs. Mais pour un très grand nombre de valeur, ça risque devenir problématique. Les méthodes que j'ai cité (même si elle ne sont pas parfaites), ont la caractéristique principales de travailler sur place. (l'espace nécessaire au tri est négligeable par rapport à la taille de la table).et tu recopies ton tableau dans une table de hashage en utilisant la clef de hashage créée précédemment.
Partager