|
|
Proč tak složitě
|
12.5.2006 13:30
Hynek (Pichi) Vychodil
|
Vždyť sortovat podle hodnot lze a dokonce bych se vsadil, že to bude srovnatelně rychlé protože přístup do hashe je v perlu sakramentsky rychlý
print "$stat{$_} - $_\n"
foreach (
sort {$stat{$b}<=>$stat{$a}} keys %stat
)[0 .. $pocet-1];
Krom toho, co kdybych chtěl výpis print "$_ -n $stat{$_}\n" ? To by jste si udělal ještě jednu pomocnou strukturu, když už ta první je vlastně zbytečná.
Když už jsme v tom, tak proč nepoužít
@radky = map "$stat{$_} - $_\n", keys %stat;
nebo alespoň
@radky = ();
foreach my $klic (keys %stat){
push @radky, "$stat{$klic} - $klic\n";
}
místo
foreach my $klic (keys %stat){
$radky[$i] = "$stat{$klic} - $klic\n";
$i++;
} mi taky není dost dobře jasné.
Pak už by mi nic nebránilo udělat
print(
(
sort {$b<=>$a}
map "$stat{$_} - $_\n", keys %stat
)[0 .. $pocet-1]
);
A jsme tam kde jsme byli. Akorát trochu víc rychlosti na úkor větší spotřeby paměti.
V perlu se dá taky programovat elegantně. |
|
|
|
|
KOMENTARZE
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
|
Szukanie oprogramowania
|
©Pavel Kysilka - 2003-2024 |
maillinuxsoft.cz | Design:
www.megadesign.cz
|