Thread Numiersche Sortierfunktion
(12 answers)
Opened by Gast at 2012-11-29 07:47
Hier nochmal eine etwas "wörtlichere" Übersetzung meines Ansatzes:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #!/usr/bin/perl use warnings; use strict; my %h = ("als" => 5, "wie" => 3, "Von" => 3, "zu" => 5, "von" => 10); my $i; my $u; my @k = keys(%h); my %h2 = (); foreach $i (@k) { if (! exists($h2{$h{$i}})) { $h2{$h{$i}} = []; } push( @{ $h2{$h{$i}} }, $i); } my @k2 = keys(%h2); @k2 = sort({$b <=> $a} @k2); foreach $i (@k2) { print "$i\t"; foreach $u (@{ $h2{$i} }) { print "$u, "; } print "\n"; } Der Code von Linuxer ist sicher schöner, wenn man ihn versteht. So leicht ist meiner allerdings auch nicht zu verstehen. :( Man müßte halt mit einem Hash von Arrays klarkommen. Diese Dinge sind z.B. in dem Buch "Intermediate Perl" und z.B. auch in "perldoc perllol" beschrieben. Wie der Titel des Buches schon sagt, geht das ein bißchen über das Anfänger-/Grundlagenwissen hinaus. Dennoch braucht man es häufiger, so daß es sich schon lohnt, sich damit einmal zu beschäftigen. |