Thread Sort VS Schwartz'sche sort ??? - Benchmark
(21 answers)
Opened by Updecrator at 2006-01-03 11:05
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--> |