Thread Sortierung eines Arrays
(5 answers)
Opened by bAbbAZwack at 2008-01-23 16:07
wenn du sehr viele Elemente hast, koennte es vielleicht schneller sein, das ueber eine Schwartzian Transform zu loesen... siehe meine HP unter Perl -> Sortierungen.
Code (perl): (dl
)
1 2 3 4 5 my @sorted = map { $_->[1] } sort { $a->[0] cmp $b->[0] } map { [ lc($_->{name} ), $_ ] } @unsorted; von unten nach oben lesen: map: Aus @unsorted wird ein zweidimensionales array gemacht: element1 ist das Sortierkriterium, element2 ist der originalwert sort: vergleiche die ersten Elemente des Arrays. da hier nichts mehr umgewandelt werden muss (z.B. lc), geht der Vergleich der jeweiligen vergleichskriterien schneller map: der Originalstring wird zurueckgegeben. Das kann - oder auch nicht - schneller sein. perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/ |