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" <[email protected]> 写道:
不是计算机专业的,恳请能否给一段perl伪代码?或者哪里能找到。
谢谢诸位!
2010/5/26 宇捷 <[email protected]>
简单一点说就是线段染色问题
发件人:[email protected]
[mailto:[email protected]] 代表 Yisong Zhen
发送时间: 2010年5月26日 18:15
收件人:[email protected]
主题: [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 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至[email protected]。
要取消订阅此网上论坛,请发送电子邮件至[email protected]。
若有更多问题,请通过http://groups.google.com/group/perlchina?hl=zh-CN访问此网上论坛。
--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 [email protected]。
要取消订阅此网上论坛,请发送电子邮件至 [email protected]。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 [email protected]。
要取消订阅此网上论坛,请发送电子邮件至 [email protected]。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 [email protected]。
要取消订阅此网上论坛,请发送电子邮件至 [email protected]。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。