my @pairs = ([15,19],[20,23],[40,48],[30,35],[18,24],[21,26]);
@pairs = sort{ $a->[0] <=> $b->[0]; } @pairs;
my @results; push(@results, shift(@pairs));
for my $p (@pairs) {
if ( $p->[0] < $results[$#results]->[1] ) {
if ( $p->[1] >= $results[$#results]->[1] )
{ $results[$#results]->[1] = $p->[1]; }
}
elsif ( $p->[0] > $results[$#results]->[1] )
{ push( @results, $p); }
else { $results[$#results]->[1] = $p->[1]; }
}
在2010-05-26 19:24:35,"Yisong Zhen" <zhenyisong@gmail.com> 写道:
不是计算机专业的,恳请能否给一段perl伪代码?或者哪里能找到。谢谢诸位!2010/5/26 宇捷 <hfahe@163.com>--
简单一点说 就是线段染色问题
发件人: perlchina+bnccofx3ta0frcx6fpfbboe3txeua@googlegroups.com [mailto:perlchina+bnccofx3ta0frcx6fpfbboe3txeua@googlegroups.com] 代表 Yisong Zhen
发送时间: 2010年5月26日 18:15
收件人: perlchina@googlegroups.com
主题: [PerlChina] 如何合并这些数据对?
Hello, 各位,
(15,19) (20,23) (40,48) (30,35) (18,24) (21,26).。。。。。。7000多个数据对。
如上所示的在x轴上的数据对,例如,(15,19)表示15到19的直线距离,在X轴上标出。(18,24)和(15,19)有重叠,因此合并成为(15,24)这样子,(15,19)(20,23)(18,24)(21,26)可以合并在一起成为,(15,26)
最终的数据对成为
(15,26)(40,48)(30,35)三个。
我不知道这个算法是什么?如何实现?
谢谢诸位啦!
--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
网易为中小企业免费提供企业邮箱(自主域名) --
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
没有评论:
发表评论