Chinaunix
标题:
perl snake算法
[打印本页]
作者:
simon_stone
时间:
2015-09-17 15:48
标题:
perl snake算法
数组@array = ([1,1],[1,2],[1,3],[2,1],[2,2],[2,3],[3,1],[3,2],[3,3]);
起点为[1,1], ($xmin,$ymin,$xmax,$ymax) = (1,1,3,3);
对该数组进行snake排序,结果为@array1 = ([1,1],[1,2],[1,3],[2,3],[2,2],[2,1],[3,1],[3,2],[3,3])
请教下,这个排序子过程应该怎么写?
作者:
simon_stone
时间:
2015-09-17 16:08
求助,有没有好心人帮忙提供代码,或者给点思路。
作者:
ynchnluiti
时间:
2015-09-17 19:13
你这不是已经排好序了吗。
print "[$_->[0], $_->[1]]\n" for
sort { "$a->[0]$a->[1]" <=> "$b->[0]$b->[1]" } @array;
复制代码
作者:
rubyish
时间:
2015-09-18 05:17
shibushi:
#!/usr/bin/perl
my @a = (
[ 1, 1 ], [ 1, 2 ], [ 1, 3 ], [ 2, 1 ], [ 2, 2 ], [ 2, 3 ],
[ 3, 1 ], [ 3, 2 ], [ 3, 3 ]
);
sub snake {
my @sort = (
sub { sort { $a->[1] <=> $b->[1] } @_ },
sub { sort { $b->[1] <=> $a->[1] } @_ }
);
my %h;
push @{ $h{ $_->[0] } }, $_ for @_;
map $sort[ $|-- ]->( @{ $h{$_} } ), sort { $a <=> $b } keys %h;
}
my @s = snake @a;
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2