Thread Werte in Hash und gleichzeitig doppelte finden (14 answers)
Opened by rk-ger at 2007-01-01 23:46

bloonix
 2007-01-08 20:41
#72849 #72849
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=pq,08.01.2007, 18:56]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
my @a = (0..1000, 0..1000);
Benchmark::timethese($ARGV[0]||-1,{
"shift" => sub {
my (%seen, $string);
my @array = @a;
$seen{$string}++ while defined ($string = shift @array);
for (keys %seen) {
push @array, $_;
delete $seen{$_};
} return @array;
},
"grep" => sub {
my %seen;
my @unique = grep { ! $seen{$_}++ } @a;
},
});
__END__
grep: 1 wallclock secs ( 1.04 usr + 0.00 sys = 1.04 CPU) @ 614.42/s (n=639)

shift: 1 wallclock secs ( 1.03 usr + 0.00 sys = 1.03 CPU) @ 296.12/s (n=305)
[/quote]
In der Routine fuer "shift" deklarierst du @array immer wieder neu,
bei "grep" nicht.

Nun, ein wenig unfair, findest du nicht? :)\n\n

<!--EDIT|opi|1168281699-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.

View full thread Werte in Hash und gleichzeitig doppelte finden