OVH Cloud OVH Cloud

Vérification de doublon - Optimisation ?

1 réponse
Avatar
ZigZag15551
Bonjour à tous,

J'ai créé un petit script pour fusionner et traiter les doublons dans 2
listes distinct. Les 2 listes contiennnent plus de 10000 enregistrement
et le traitement est plutôt long ! Comment je pourrais optimiser mon
script pour un traitement plus rapide ?

Merci

### Voici le script ###

#!/usr/bin/perl
my @item_list;

# Première liste
open (TXTFILE, "list-item1.txt");
while(<TXTFILE>){
chomp;
&check_ok($_);
}
close(TXTFILE);

# Deuxième liste
open (TXTFILE, "list-item2.txt");
while(<TXTFILE>){
chomp;
my $item = (split/\,/,$_)[1];
&check_ok($item);
}
close(TXTFILE);

# Enregistrement des données traitées
open (TXTFILE, ">new_list.txt");
foreach(@item_list){
print TXTFILE $_."\n";
}
close(TXTFILE);


############################## - ??
sub check_ok {
my $item = shift;
my $ok = 0;
for(my $i=0;$i<scalar(@item_list);$i++){
if($item_list[$i] == $item){$ok=1;last;}
}

if($ok != 1){
push @item_list,$item;
}
}
############################## - !!

print "Content-type: text/html\n\n";
print "<html><pre>OK</pre></html>\n";
exit;

--
------------------------------------
ZigZag15551
------------------------------------

1 réponse

Avatar
Nicolas George
"ZigZag15551" wrote in message :
J'ai créé un petit script pour fusionner et traiter les doublons dans 2
listes distinct. Les 2 listes contiennnent plus de 10000 enregistrement
et le traitement est plutôt long ! Comment je pourrais optimiser mon
script pour un traitement plus rapide ?


En utilisant les items comme clefs d'une table de hashage ou comme indices
d'un tableau, où stocker n'importe quelle valeur (typiquement 1) pour tester
l'existence sans parcourir le tableau.

Si ça ne suffit pas, _The Art of Computer Programming_, volume 2.