## changed sub mcsort { @_[ do { my %by; my @keys = map { (split '\|:\|', $_, 2)[1] } @_; @by{@keys} = 0..$#_; @by{sort @keys}; } ]; } ## added sub myosort { sort { (split '\|:\|', $a, 2)[1] cmp (split '\|:\|', $b, 2)[1] } @_; } ## NEW RESULTS ## Comparing for 10 elements Rate st ah tye mc myo st 8924/s -- -2% -42% -44% -99% ah 9098/s 2% -- -41% -43% -99% tye 15315/s 72% 68% -- -4% -98% mc 15904/s 78% 75% 4% -- -98% myo 653579/s 7224% 7084% 4168% 4010% -- Comparing for 25 elements Rate st ah tye mc myo st 3416/s -- -11% -43% -51% -99% ah 3853/s 13% -- -36% -45% -99% tye 5990/s 75% 55% -- -14% -99% mc 6950/s 103% 80% 16% -- -99% myo 558070/s 16236% 14382% 9217% 7930% -- Comparing for 100 elements Rate st ah tye mc myo st 748/s -- -23% -41% -58% -100% ah 967/s 29% -- -24% -46% -100% tye 1264/s 69% 31% -- -29% -100% mc 1789/s 139% 85% 42% -- -99% myo 323567/s 43138% 33372% 25505% 17984% -- Comparing for 250 elements Rate st ah tye mc myo st 265/s -- -30% -38% -62% -100% ah 376/s 42% -- -12% -46% -100% tye 426/s 61% 13% -- -38% -100% mc 692/s 162% 84% 63% -- -100% myo 164515/s 62088% 43687% 38543% 23666% -- Comparing for 1000 elements Rate st tye ah mc myo st 52.9/s -- -37% -42% -64% -100% tye 84.1/s 59% -- -7% -43% -100% ah 90.9/s 72% 8% -- -38% -100% mc 147/s 177% 74% 61% -- -100% myo 48711/s 92007% 57796% 53482% 33147% -- Comparing for 2500 elements Rate st tye ah mc myo st 17.6/s -- -38% -47% -61% -100% tye 28.5/s 62% -- -14% -36% -100% ah 33.3/s 89% 17% -- -26% -100% mc 44.8/s 154% 57% 34% -- -100% myo 18884/s 107077% 66153% 56551% 42040% -- Comparing for 10000 elements Rate st tye ah mc myo st 3.13/s -- -35% -55% -57% -100% tye 4.81/s 54% -- -31% -34% -100% ah 6.93/s 122% 44% -- -5% -100% mc 7.28/s 133% 51% 5% -- -100% myo 3842/s 122850% 79817% 55337% 52666% --