#!/usr/bin/perl
use warnings;
use strict;
$\ = $/;
sub sort_sub{
return $a cmp $b;
}
sub some_sub{
my $ref = shift;
print "@{ $ref }";
for my $i ( 0 .. @{ $ref } - 2 ){
$ref->[ $i ] cmp $ref->[ $i + 1 ] and do { ;;; };
}
}
####
my @original = ( 5, 'A' .. 'C', 0, 4 );
my @sorted = sort sort_sub @original;
my @r_sorted = reverse @sorted;
some_sub( $_ ) for \@original, \@sorted, \@r_sorted;
print '-';
##
##
some_sub( [ sort { $_ * sort_sub } @original ] ) for 0, 1, -1;
print '-';
##
##
5 A B C 0 4
0 4 5 A B C
C B A 5 4 0
-
5 A B C 0 4
0 4 5 A B C
C B A 5 4 0
-
##
##
my @reversed = reverse @original;
some_sub( $_ ) for \@original, \@reversed;
print '-';
some_sub( [ sort { $_ } @original ] ) for 0, 1;
##
##
5 A B C 0 4
4 0 C B A 5
-
5 A B C 0 4
4 0 C B A 5
##
##
srand 1;
my $show_distance = 10;
for my $length ( 1 .. 3 ** 3 - 1,
map { 3 ** $_, 3 ** $_ + 1 } 3 .. 10,
){
print join " length: $length ", ( '=' x 5 ) x 2;
my $test = [ map int rand 10, 1 .. $length ];
my %sub = (
'$a <=> $b' => { 'sub' => sub { $a <=> $b } },
'0' => { 'sub' => sub { 0 } },
'1' => { 'sub' => sub { 1 } },
'-1' => { 'sub' => sub { -1 } },
);
for my $key ( sort keys %sub ){
my $count = 0;
$sub{ $key }{ 'array' } =
[ sort { $count ++; $sub{ $key }{ 'sub' }->() } @{ $test } ];
$sub{ $key }{ 'count' } = $count;
}
for my $key ( sort keys %sub ){
print "\$key:[$key]";
print " count:[$sub{ $key }{ 'count' }]";
my $len = @{ $sub{ $key }{ 'array' } };
printf " array:[%s ... %s]\n",
( join ' ', @{ $sub{ $key }{ 'array' } }[
grep { 0
|| $show_distance > abs( $_ - 0 )
} 0 .. $len - 1
] ),
( join ' ', @{ $sub{ $key }{ 'array' } }[
grep { 0
|| $show_distance > abs( $_ - $len + 1 )
&& not $show_distance > abs( $_ - 0 )
} 0 .. $len - 1
] ),
;
}
print "key='1' NOT EQUAL to reverse!" if "@{ $sub{ 1 }{ 'array' } }"
ne join ' ', reverse @{ $test };
print "key='-1' NOT EQUAL to key='0'!" if "@{ $sub{ -1 }{ 'array' } }"
ne "@{ $sub{ 0 }{ 'array' } }";
print '';
}
##
##
===== length: 1 =====
$key:[$a <=> $b]
count:[0]
array:[0 ... ]
$key:[-1]
count:[0]
array:[0 ... ]
$key:[0]
count:[0]
array:[0 ... ]
$key:[1]
count:[0]
array:[0 ... ]
===== length: 2 =====
$key:[$a <=> $b]
count:[1]
array:[4 8 ... ]
$key:[-1]
count:[1]
array:[4 8 ... ]
$key:[0]
count:[1]
array:[4 8 ... ]
$key:[1]
count:[1]
array:[8 4 ... ]
===== length: 3 =====
$key:[$a <=> $b]
count:[2]
array:[0 3 5 ... ]
$key:[-1]
count:[3]
array:[3 0 5 ... ]
$key:[0]
count:[3]
array:[3 5 0 ... ]
$key:[1]
count:[2]
array:[0 5 3 ... ]
key='-1' NOT EQUAL to key='0'!
===== length: 4 =====
$key:[$a <=> $b]
count:[5]
array:[1 3 7 9 ... ]
$key:[-1]
count:[5]
array:[1 7 9 3 ... ]
$key:[0]
count:[4]
array:[1 9 7 3 ... ]
$key:[1]
count:[4]
array:[3 7 9 1 ... ]
key='-1' NOT EQUAL to key='0'!
===== length: 5 =====
$key:[$a <=> $b]
count:[8]
array:[0 1 3 5 9 ... ]
$key:[-1]
count:[7]
array:[3 9 1 5 0 ... ]
$key:[0]
count:[8]
array:[3 5 1 0 9 ... ]
$key:[1]
count:[5]
array:[9 0 1 5 3 ... ]
key='-1' NOT EQUAL to key='0'!
===== length: 6 =====
$key:[$a <=> $b]
count:[11]
array:[1 1 2 5 6 8 ... ]
$key:[-1]
count:[10]
array:[1 1 2 6 5 8 ... ]
$key:[0]
count:[9]
array:[1 5 2 8 1 6 ... ]
$key:[1]
count:[7]
array:[6 1 8 2 5 1 ... ]
key='-1' NOT EQUAL to key='0'!
===== length: 7 =====
$key:[$a <=> $b]
count:[13]
array:[0 2 3 5 5 8 9 ... ]
$key:[-1]
count:[14]
array:[2 3 5 5 0 8 9 ... ]
$key:[0]
count:[11]
array:[2 0 5 9 3 8 5 ... ]
$key:[1]
count:[9]
array:[5 8 3 9 5 0 2 ... ]
key='-1' NOT EQUAL to key='0'!
===== length: 8 =====
$key:[$a <=> $b]
count:[16]
array:[0 1 2 3 6 8 8 9 ... ]
$key:[-1]
count:[17]
array:[3 9 6 1 8 0 2 8 ... ]
$key:[0]
count:[12]
array:[3 8 6 2 9 0 1 8 ... ]
$key:[1]
count:[12]
array:[8 1 0 9 2 6 8 3 ... ]
key='-1' NOT EQUAL to key='0'!
===== length: 9 =====
$key:[$a <=> $b]
count:[21]
array:[1 2 3 4 4 5 6 6 7 ... ]
$key:[-1]
count:[19]
array:[1 3 4 6 2 4 5 7 6 ... ]
$key:[0]
count:[18]
array:[1 7 2 6 4 5 3 4 6 ... ]
$key:[1]
count:[12]
array:[6 4 3 5 4 6 2 7 1 ... ]
key='-1' NOT EQUAL to key='0'!
===== length: 10 =====
$key:[$a <=> $b]
count:[25]
array:[1 3 3 6 6 7 7 8 8 9 ... ]
$key:[-1]
count:[23]
array:[7 1 9 6 8 8 6 3 7 3 ... ]
$key:[0]
count:[19]
array:[7 7 8 3 9 6 1 8 6 3 ... ]
$key:[1]
count:[15]
array:[3 6 8 1 6 9 3 8 7 7 ... ]
key='-1' NOT EQUAL to key='0'!
===== length: 11 =====
$key:[$a <=> $b]
count:[27]
array:[0 2 2 2 4 5 5 5 5 6 ... 9]
$key:[-1]
count:[27]
array:[5 6 2 0 2 5 5 5 4 2 ... 9]
$key:[0]
count:[23]
array:[5 4 2 9 2 5 6 5 5 2 ... 0]
$key:[1]
count:[17]
array:[0 2 5 5 6 5 2 9 2 4 ... 5]
key='-1' NOT EQUAL to key='0'!
===== length: 12 =====
$key:[$a <=> $b]
count:[30]
array:[1 2 3 5 5 5 6 6 6 7 ... 7 9]
$key:[-1]
count:[31]
array:[2 5 6 1 7 6 3 5 7 5 ... 6 9]
$key:[0]
count:[24]
array:[2 7 7 6 6 3 5 5 6 9 ... 1 5]
$key:[1]
count:[20]
array:[5 1 9 6 5 5 3 6 6 7 ... 7 2]
key='-1' NOT EQUAL to key='0'!
===== length: 13 =====
$key:[$a <=> $b]
count:[34]
array:[0 2 2 2 3 3 5 5 6 8 ... 9 9 9]
$key:[-1]
count:[34]
array:[0 9 2 2 2 9 3 6 5 3 ... 8 9 5]
$key:[0]
count:[28]
array:[0 5 2 9 2 8 3 5 9 6 ... 9 3 2]
$key:[1]
count:[22]
array:[2 3 9 6 9 5 3 8 2 9 ... 2 5 0]
key='-1' NOT EQUAL to key='0'!
===== length: 14 =====
$key:[$a <=> $b]
count:[39]
array:[1 3 3 3 4 5 5 5 6 8 ... 9 9 9 9]
$key:[-1]
count:[39]
array:[4 3 3 6 3 5 5 5 9 1 ... 9 9 8 9]
$key:[0]
count:[29]
array:[4 9 3 8 3 9 5 9 3 1 ... 5 9 6 5]
$key:[1]
count:[25]
array:[5 6 9 5 1 3 9 5 9 3 ... 8 3 9 4]
key='-1' NOT EQUAL to key='0'!
===== length: 15 =====
$key:[$a <=> $b]
count:[42]
array:[0 0 1 1 2 3 6 6 6 8 ... 8 8 9 9 9]
$key:[-1]
count:[45]
array:[9 2 8 6 9 9 0 8 3 1 ... 6 0 6 8 1]
$key:[0]
count:[31]
array:[9 3 9 6 8 6 0 1 2 1 ... 9 8 6 0 8]
$key:[1]
count:[28]
array:[8 0 6 8 9 1 2 1 0 6 ... 8 6 9 3 9]
key='-1' NOT EQUAL to key='0'!
===== length: 16 =====
$key:[$a <=> $b]
count:[47]
array:[1 2 2 2 3 4 4 5 5 7 ... 7 7 8 9 9 9]
$key:[-1]
count:[49]
array:[2 8 1 5 3 2 9 9 7 4 ... 2 5 9 4 7 7]
$key:[0]
count:[32]
array:[2 7 3 9 1 2 9 7 8 4 ... 2 4 5 5 9 7]
$key:[1]
count:[32]
array:[7 9 5 5 4 2 4 8 7 9 ... 2 1 9 3 7 2]
key='-1' NOT EQUAL to key='0'!
===== length: 17 =====
$key:[$a <=> $b]
count:[54]
array:[0 1 2 2 2 2 4 4 4 4 ... 4 5 6 6 7 7 8]
$key:[-1]
count:[51]
array:[7 2 5 7 4 4 4 6 2 4 ... 8 2 1 2 6 0 4]
$key:[0]
count:[39]
array:[7 0 2 4 4 1 5 8 4 6 ... 2 4 4 2 7 2 6]
$key:[1]
count:[31]
array:[6 2 7 2 4 4 2 6 4 8 ... 5 1 4 4 2 0 7]
key='-1' NOT EQUAL to key='0'!
===== length: 18 =====
$key:[$a <=> $b]
count:[57]
array:[0 1 1 2 2 2 3 3 3 3 ... 5 5 6 6 6 6 7 9]
$key:[-1]
count:[17]
array:[6 3 0 2 3 9 5 2 6 1 ... 1 6 5 6 2 3 7 3]
$key:[0]
count:[17]
array:[6 3 0 2 3 9 5 2 6 1 ... 1 6 5 6 2 3 7 3]
$key:[1]
count:[17]
array:[3 7 3 2 6 5 6 1 1 6 ... 2 5 9 3 2 0 3 6]
===== length: 19 =====
$key:[$a <=> $b]
count:[60]
array:[0 0 2 2 3 3 3 4 4 5 ... 5 7 7 7 7 8 8 9 9]
$key:[-1]
count:[18]
array:[8 4 7 2 7 3 7 3 0 5 ... 9 0 2 9 8 4 7 3 5]
$key:[0]
count:[18]
array:[8 4 7 2 7 3 7 3 0 5 ... 9 0 2 9 8 4 7 3 5]
$key:[1]
count:[18]
array:[5 3 7 4 8 9 2 0 9 5 ... 0 3 7 3 7 2 7 4 8]
===== length: 20 =====
$key:[$a <=> $b]
count:[66]
array:[0 1 1 2 2 2 3 3 3 4 ... 4 5 5 5 6 7 7 7 7 9]
$key:[-1]
count:[19]
array:[5 2 5 4 9 2 7 3 2 3 ... 7 6 5 7 1 4 0 3 1 7]
$key:[0]
count:[19]
array:[5 2 5 4 9 2 7 3 2 3 ... 7 6 5 7 1 4 0 3 1 7]
$key:[1]
count:[19]
array:[7 1 3 0 4 1 7 5 6 7 ... 3 2 3 7 2 9 4 5 2 5]
===== length: 21 =====
$key:[$a <=> $b]
count:[68]
array:[0 0 0 2 3 4 4 5 5 5 ... 5 6 6 7 8 8 9 9 9 9]
$key:[-1]
count:[20]
array:[9 5 9 4 8 5 5 9 4 7 ... 3 9 8 2 6 0 5 0 5 0]
$key:[0]
count:[20]
array:[9 5 9 4 8 5 5 9 4 7 ... 3 9 8 2 6 0 5 0 5 0]
$key:[1]
count:[20]
array:[0 5 0 5 0 6 2 8 9 3 ... 7 4 9 5 5 8 4 9 5 9]
===== length: 22 =====
$key:[$a <=> $b]
count:[71]
array:[0 0 0 0 1 2 2 3 3 3 ... 4 4 5 6 6 8 8 8 8 9]
$key:[-1]
count:[21]
array:[8 0 8 4 4 5 0 6 6 3 ... 0 8 0 9 1 8 2 3 3 4]
$key:[0]
count:[21]
array:[8 0 8 4 4 5 0 6 6 3 ... 0 8 0 9 1 8 2 3 3 4]
$key:[1]
count:[21]
array:[4 3 3 2 8 1 9 0 8 0 ... 3 6 6 0 5 4 4 8 0 8]
===== length: 23 =====
$key:[$a <=> $b]
count:[79]
array:[0 0 1 1 3 3 4 5 5 5 ... 7 8 8 8 8 9 9 9 9 9]
$key:[-1]
count:[22]
array:[5 5 1 9 9 3 5 8 9 8 ... 9 6 7 9 3 4 5 1 8 0]
$key:[0]
count:[22]
array:[5 5 1 9 9 3 5 8 9 8 ... 9 6 7 9 3 4 5 1 8 0]
$key:[1]
count:[22]
array:[0 8 1 5 4 3 9 7 6 9 ... 8 9 8 5 3 9 9 1 5 5]
===== length: 24 =====
$key:[$a <=> $b]
count:[81]
array:[0 0 0 0 0 1 2 2 3 3 ... 5 6 6 6 7 7 7 7 8 9]
$key:[-1]
count:[23]
array:[0 6 5 3 6 7 4 0 4 7 ... 0 6 2 9 0 4 4 8 7 7]
$key:[0]
count:[23]
array:[0 6 5 3 6 7 4 0 4 7 ... 0 6 2 9 0 4 4 8 7 7]
$key:[1]
count:[23]
array:[7 7 8 4 4 0 9 2 6 0 ... 7 4 0 4 7 6 3 5 6 0]
===== length: 25 =====
$key:[$a <=> $b]
count:[95]
array:[0 1 1 1 2 2 2 2 2 2 ... 5 5 5 5 6 6 6 8 8 8]
$key:[-1]
count:[24]
array:[8 2 4 1 4 2 3 2 5 1 ... 5 2 1 2 6 4 3 2 6 8]
$key:[0]
count:[24]
array:[8 2 4 1 4 2 3 2 5 1 ... 5 2 1 2 6 4 3 2 6 8]
$key:[1]
count:[24]
array:[8 6 2 3 4 6 2 1 2 5 ... 1 5 2 3 2 4 1 4 2 8]
===== length: 26 =====
$key:[$a <=> $b]
count:[90]
array:[0 1 1 1 2 2 2 3 3 4 ... 6 6 6 7 7 7 8 8 8 9]
$key:[-1]
count:[25]
array:[0 2 8 7 6 6 6 2 1 7 ... 4 5 4 3 7 9 1 2 6 8]
$key:[0]
count:[25]
array:[0 2 8 7 6 6 6 2 1 7 ... 4 5 4 3 7 9 1 2 6 8]
$key:[1]
count:[25]
array:[8 6 2 1 9 7 3 4 5 4 ... 7 1 2 6 6 6 7 8 2 0]
===== length: 27 =====
$key:[$a <=> $b]
count:[99]
array:[0 0 0 0 0 1 1 2 3 3 ... 7 7 7 7 8 8 8 9 9 9]
$key:[-1]
count:[26]
array:[0 3 0 7 4 7 1 9 7 3 ... 6 8 7 0 0 0 3 6 1 6]
$key:[0]
count:[26]
array:[0 3 0 7 4 7 1 9 7 3 ... 6 8 7 0 0 0 3 6 1 6]
$key:[1]
count:[26]
array:[6 1 6 3 0 0 0 7 8 6 ... 3 7 9 1 7 4 7 0 3 0]
===== length: 28 =====
$key:[$a <=> $b]
count:[101]
array:[0 0 0 1 1 1 1 1 2 2 ... 6 6 6 7 7 8 8 9 9 9]
$key:[-1]
count:[27]
array:[1 1 3 1 6 0 8 4 8 2 ... 9 6 3 3 5 9 7 7 5 6]
$key:[0]
count:[27]
array:[1 1 3 1 6 0 8 4 8 2 ... 9 6 3 3 5 9 7 7 5 6]
$key:[1]
count:[27]
array:[6 5 7 7 9 5 3 3 6 9 ... 2 8 4 8 0 6 1 3 1 1]
===== length: 81 =====
$key:[$a <=> $b]
count:[415]
array:[0 0 0 0 0 0 0 0 0 1 ... 8 8 9 9 9 9 9 9 9 9]
$key:[-1]
count:[80]
array:[8 3 5 8 0 6 1 0 0 4 ... 0 9 1 9 6 3 1 4 9 4]
$key:[0]
count:[80]
array:[8 3 5 8 0 6 1 0 0 4 ... 0 9 1 9 6 3 1 4 9 4]
$key:[1]
count:[80]
array:[4 9 4 1 3 6 9 1 9 0 ... 4 0 0 1 6 0 8 5 3 8]
===== length: 82 =====
$key:[$a <=> $b]
count:[421]
array:[0 0 0 0 0 0 0 0 0 1 ... 8 8 8 8 9 9 9 9 9 9]
$key:[-1]
count:[81]
array:[1 5 8 6 0 2 8 7 6 1 ... 1 9 1 5 9 7 0 4 9 2]
$key:[0]
count:[81]
array:[1 5 8 6 0 2 8 7 6 1 ... 1 9 1 5 9 7 0 4 9 2]
$key:[1]
count:[81]
array:[2 9 4 0 7 9 5 1 9 1 ... 1 6 7 8 2 0 6 8 5 1]
===== length: 243 =====
$key:[$a <=> $b]
count:[1572]
array:[0 0 0 0 0 0 0 0 0 0 ... 9 9 9 9 9 9 9 9 9 9]
$key:[-1]
count:[242]
array:[2 4 4 6 3 0 5 3 2 2 ... 1 2 5 5 8 9 4 6 7 7]
$key:[0]
count:[242]
array:[2 4 4 6 3 0 5 3 2 2 ... 1 2 5 5 8 9 4 6 7 7]
$key:[1]
count:[242]
array:[7 7 6 4 9 8 5 5 2 1 ... 2 2 3 5 0 3 6 4 4 2]
===== length: 244 =====
$key:[$a <=> $b]
count:[1590]
array:[0 0 0 0 0 0 0 0 0 0 ... 9 9 9 9 9 9 9 9 9 9]
$key:[-1]
count:[243]
array:[8 5 7 8 8 6 7 9 1 4 ... 6 7 4 8 2 4 5 0 5 3]
$key:[0]
count:[243]
array:[8 5 7 8 8 6 7 9 1 4 ... 6 7 4 8 2 4 5 0 5 3]
$key:[1]
count:[243]
array:[3 5 0 5 4 2 8 4 7 6 ... 4 1 9 7 6 8 8 7 5 8]
===== length: 729 =====
$key:[$a <=> $b]
count:[5321]
array:[0 0 0 0 0 0 0 0 0 0 ... 9 9 9 9 9 9 9 9 9 9]
$key:[-1]
count:[728]
array:[4 2 9 5 7 4 2 1 3 6 ... 2 9 6 0 4 9 4 3 0 3]
$key:[0]
count:[728]
array:[4 2 9 5 7 4 2 1 3 6 ... 2 9 6 0 4 9 4 3 0 3]
$key:[1]
count:[728]
array:[3 0 3 4 9 4 0 6 9 2 ... 6 3 1 2 4 7 5 9 2 4]
===== length: 730 =====
$key:[$a <=> $b]
count:[5384]
array:[0 0 0 0 0 0 0 0 0 0 ... 9 9 9 9 9 9 9 9 9 9]
$key:[-1]
count:[729]
array:[1 2 5 2 9 6 6 0 4 9 ... 4 7 1 8 2 6 5 9 5 9]
$key:[0]
count:[729]
array:[1 2 5 2 9 6 6 0 4 9 ... 4 7 1 8 2 6 5 9 5 9]
$key:[1]
count:[729]
array:[9 5 9 5 6 2 8 1 7 4 ... 9 4 0 6 6 9 2 5 2 1]
===== length: 2187 =====
$key:[$a <=> $b]
count:[16600]
array:[0 0 0 0 0 0 0 0 0 0 ... 9 9 9 9 9 9 9 9 9 9]
$key:[-1]
count:[2186]
array:[0 0 9 3 2 1 0 7 9 7 ... 0 2 4 8 7 2 2 5 3 6]
$key:[0]
count:[2186]
array:[0 0 9 3 2 1 0 7 9 7 ... 0 2 4 8 7 2 2 5 3 6]
$key:[1]
count:[2186]
array:[6 3 5 2 2 7 8 4 2 0 ... 7 9 7 0 1 2 3 9 0 0]
===== length: 2188 =====
$key:[$a <=> $b]
count:[16606]
array:[0 0 0 0 0 0 0 0 0 0 ... 9 9 9 9 9 9 9 9 9 9]
$key:[-1]
count:[2187]
array:[7 0 8 6 8 3 0 9 0 4 ... 7 5 7 7 0 6 7 9 9 3]
$key:[0]
count:[2187]
array:[7 0 8 6 8 3 0 9 0 4 ... 7 5 7 7 0 6 7 9 9 3]
$key:[1]
count:[2187]
array:[3 9 9 7 6 0 7 7 5 7 ... 4 0 9 0 3 8 6 8 0 7]
===== length: 6561 =====
$key:[$a <=> $b]
count:[50834]
array:[0 0 0 0 0 0 0 0 0 0 ... 9 9 9 9 9 9 9 9 9 9]
$key:[-1]
count:[6560]
array:[5 6 1 7 9 9 7 6 7 6 ... 0 2 8 1 0 2 7 6 8 4]
$key:[0]
count:[6560]
array:[5 6 1 7 9 9 7 6 7 6 ... 0 2 8 1 0 2 7 6 8 4]
$key:[1]
count:[6560]
array:[4 8 6 7 2 0 1 8 2 0 ... 6 7 6 7 9 9 7 1 6 5]
===== length: 6562 =====
$key:[$a <=> $b]
count:[50755]
array:[0 0 0 0 0 0 0 0 0 0 ... 9 9 9 9 9 9 9 9 9 9]
$key:[-1]
count:[6561]
array:[6 6 3 8 5 3 5 1 6 1 ... 8 5 0 4 1 3 2 0 9 9]
$key:[0]
count:[6561]
array:[6 6 3 8 5 3 5 1 6 1 ... 8 5 0 4 1 3 2 0 9 9]
$key:[1]
count:[6561]
array:[9 9 0 2 3 1 4 0 5 8 ... 1 6 1 5 3 5 8 3 6 6]
===== length: 19683 =====
$key:[$a <=> $b]
count:[152997]
array:[0 0 0 0 0 0 0 0 0 0 ... 9 9 9 9 9 9 9 9 9 9]
$key:[-1]
count:[19682]
array:[0 2 6 1 7 8 3 3 7 6 ... 6 4 2 3 4 0 7 8 6 7]
$key:[0]
count:[19682]
array:[0 2 6 1 7 8 3 3 7 6 ... 6 4 2 3 4 0 7 8 6 7]
$key:[1]
count:[19682]
array:[7 6 8 7 0 4 3 2 4 6 ... 6 7 3 3 8 7 1 6 2 0]
===== length: 19684 =====
$key:[$a <=> $b]
count:[152923]
array:[0 0 0 0 0 0 0 0 0 0 ... 9 9 9 9 9 9 9 9 9 9]
$key:[-1]
count:[19683]
array:[0 4 2 3 6 9 6 7 3 2 ... 3 4 0 5 2 7 7 2 6 9]
$key:[0]
count:[19683]
array:[0 4 2 3 6 9 6 7 3 2 ... 3 4 0 5 2 7 7 2 6 9]
$key:[1]
count:[19683]
array:[9 6 2 7 7 2 5 0 4 3 ... 2 3 7 6 9 6 3 2 4 0]
===== length: 59049 =====
$key:[$a <=> $b]
count:[459848]
array:[0 0 0 0 0 0 0 0 0 0 ... 9 9 9 9 9 9 9 9 9 9]
$key:[-1]
count:[59048]
array:[2 7 6 7 1 7 0 9 0 7 ... 5 1 5 0 1 5 7 5 9 9]
$key:[0]
count:[59048]
array:[2 7 6 7 1 7 0 9 0 7 ... 5 1 5 0 1 5 7 5 9 9]
$key:[1]
count:[59048]
array:[9 9 5 7 5 1 0 5 1 5 ... 7 0 9 0 7 1 7 6 7 2]
===== length: 59050 =====
$key:[$a <=> $b]
count:[460469]
array:[0 0 0 0 0 0 0 0 0 0 ... 9 9 9 9 9 9 9 9 9 9]
$key:[-1]
count:[59049]
array:[9 6 3 2 4 5 6 9 2 4 ... 0 1 5 0 5 5 4 4 0 9]
$key:[0]
count:[59049]
array:[9 6 3 2 4 5 6 9 2 4 ... 0 1 5 0 5 5 4 4 0 9]
$key:[1]
count:[59049]
array:[9 0 4 4 5 5 0 5 1 0 ... 4 2 9 6 5 4 2 3 6 9]
##
##
tr/A-C/1-3/ for @original;
my @reversed = reverse @original;
some_sub( $_ ) for \@original, \@reversed;
print '-';
some_sub( [ sort { $_ * ( $a + $b ) } @original ] ) for 0, 1;
##
##
5 1 2 3 0 4
4 0 3 2 1 5
-
5 1 2 3 0 4
4 0 3 2 1 5
##
##
original: 7 1 0 9 8 0 7 7 8 0
reversed: 0 8 7 7 0 8 9 0 1 7
$a + $b : 0 8 9 0 1 7 0 8 7 7