Thread Sort Array of Hashes by Key
(7 answers)
Opened by devrand at 2012-09-18 21:12
Stimmt, manchmal sieht man die einfachen Lösungen nicht...
PS: Wenn ich meinen schnell zusammengehackten Benchmark anschaue, dann ist es gar keine Frage, ob Dein direkter sort das schnell genug erledigt... Code: (dl
)
1 perl /tmp/x.pl 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 35 #! /usr/bin/perl use strict; use warnings; use Benchmark qw( cmpthese ); use List::Util qw( shuffle ); my @unsorted = shuffle map { { $_ => [] } } 'aaa' .. 'bbb'; warn "Testing with ", scalar(@unsorted), " values.\n"; cmpthese( -1, { direct => \&direct_sort, ST => \&schwartzian, }); sub direct_sort { return sort { (keys %$a)[0] cmp (keys %$b)[0] } @unsorted; } sub schwartzian { return map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [ $_, keys %$_ ] } @unsorted; } Last edited: 2012-09-19 00:35:44 +0200 (CEST) meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |