データの整列
Posted feedbacks - Perl
どないだ
1 2 3 4 5 6 7 8 9 10 | #! /bin/perl
use warnings;
use strict;
use Data::Dumper;
my @data = ( [1,2],[5,8],[-2,5] ,[1,6],[4,7]);
print "辞書順\n";
print Dumper [ sort { $a->[0] <=> $b->[0] || $a->[1] <=> $b->[1] } @data ];
print "距離順\n";
print Dumper [sort { $a->[0] ** 2 + $a->[1] ** 2 <=> $b->[0] ** 2 + $b->[1] ** 2} @data];
|
Data::Dumperを使わないversionです。
サンプルデータはhttp://ja.doukaku.org/comment/5863/から拝借致しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #!/usr/bin/env perl
use strict;
use warnings;
use Carp;
my @aoDatas = ([1,2],[5,8],[-2,5] ,[1,6],[4,7]);
&out('DICTIONARY:',sort{$a->[0] <=> $b->[0] || $a->[1] <=> $b->[1]}@aoDatas);
&out('DISTANCE:',sort{$a->[0]**2+$a->[1]**2 <=> $b->[0]**2+$b->[1]**2}@aoDatas);
exit;
sub out{
print shift;
print "\n".join(',',map{'('.$_->[0].','.$_->[1].')'}@_)."\n";
}
|


odz #5839() Rating1/1=1.00
(x, y) の座標情報を以下の2種類の方法で整列する機能を実現してください。
データの表現方法はタプルなり構造体/オブジェクトなり各自で適当に選んで下さい。
[ reply ]