|
|
Vrat duplicity
|
12.11.2006 21:40
Hynek (Pichi) Vychodil
|
Tahle implementace vrat_duplicity je ponekud ehm ... no při trošku větších počtech prvků to bude bolet. Trochu elegantnější a hlavně rychlejší verze:
sub vrat_duplicity {
my($r_p1, $r_p2) = @_;
my %v_prvnim;
@v_prvnim{@$r_p1} = ();
return grep exists $v_prvnim{$_}, @$r_p2;
}
Složitost nám rázem poklesne z n^2 na cca n*(1+log2(n)) a to se vyplatí :-) |
|
|
Re: Vrat duplicity
|
14.11.2006 14:32
Hynek (Pichi) Vychodil
|
Pro libovolný počet argumentů:
sub spolecne {
my @seznamy = grep ref eq 'ARRAY', @_;
return () unless @seznamy;
my ($nalezene, %spolecne) = shift @seznamy;
foreach (@seznamy) {
@spolecne{@$nalezene} = ();
$nalezene = [grep exists $spolecne{$_}, @$_];
%spolecne = ();
}
return @$nalezene;
}
|
|
|
|
|
KOMENTARZE
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
|
Szukanie oprogramowania
|
©Pavel Kysilka - 2003-2024 |
maillinuxsoft.cz | Design:
www.megadesign.cz
|