Thread Sort VS Schwartz'sche sort ??? - Benchmark (21 answers)
Opened by Updecrator at 2006-01-03 11:05

esskar
 2006-01-03 12:00
#61455 #61455
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
gehen wir doch mal durch, und versuchen rauszufinden was du da machst.

Code: (dl )
my $num = $_; $num =~ /\d+/; [ $_, $num ];


Du weißt $num dem Wert von $_; $_ ist eine Zahl. $num ist also auch eine Zahl. Mit dem Regexp prüfst du, ob $num eine Reihe von Zahlen enthält - änderst aber $num nicht. dann erzeugst du ein anonymes Array, wobei die Werte auf Index 0 und 1 identisch sind.

Code: (dl )
map { my $num = $_; $num =~ /\d+/; [ $_, $num ]; } @numbers


du baust ein Array aus Array-Referenzen. Dieses neue Array hat 1000 Einträge.

Code: (dl )
sort { $b->[1] <=> $a->[1] }


hier sortierst du die 1000 Einträge. da Index 0 und 1 identisch sind hättest du auch sort { $b->[0] <=> $a->[0] } schreiben können. genauer betrachtet ist dies schon das selbe wie dein normales sort my @sorted = sort {$b <=> $a} @numbers;

Code: (dl )
my @sorted = map { $_->[0] }


jetzt iterierst du nochmal über die 1000 Einträge und schreibst das erste elemente aus diesen anonymen referenzen in dein neues array - hättest auch my @sorted = map { $_->[1] } schreiben können :)

man sieht also, der erste algorithmus ist richtig sinnfrei! :p

PS: Kam etwas zu spät, diese Aufführung.\n\n

<!--EDIT|esskar|1136282532-->

View full thread Sort VS Schwartz'sche sort ??? - Benchmark