本帖最后由 523066680 于 2017-9-6 11:12 编辑
抽一些旧练习发出来,消灭Perl区零发帖- use IO::Handle;
- STDOUT->autoflush(1);
-
- my @arr = (
- [16,5,3,2 ],
- [16,7,2,2,1 ],
- [16,2,2,2,1 ],
- [16,2,2,2 ],
- [16,5,2,2,1 ],
- [19,3,1,1 ],
- [2,2,2,2,1 ],
- [5,5,3,2,1 ],
- );
-
- my @brr =
- reverse sort
- {
- my $i = 0;
- while ( ($a->[$i] <=> $b->[$i] ) == 0 and $#$a > $i and $#$b > $i )
- {
- $i++;
- }
-
- $a->[$i] <=> $b->[$i]
- ||
- $#$a <=> $#$b; #如果到了最后能比较的层级仍然相同,则比较元素数量
- }
- @arr;
-
- grep { print join(",", @$_),"\n" } @brr;
复制代码 输出:- 19,3,1,1
- 16,7,2,2,1
- 16,5,3,2
- 16,5,2,2,1
- 16,2,2,2,1
- 16,2,2,2
- 5,5,3,2,1
- 2,2,2,2,1
复制代码
|