两个DateTimes列表 - 搜索“bumps”链

时间:2013-04-23 17:24:30

标签: c# algorithm

我有一个应用程序,即将两个客户端连接在一起。现在,在客户端连接之后,他开始发送“颠簸” - 当碰撞到服务器时,时间被添加到List<DateTime>。现在,由于有两个客户端连接在一起 - 有两个列表。

我想要做的是,我想查看两个列表,并在两个用户发送时间差为60秒的碰撞时找到时间盘。

示例:

Bumps of user1:
18:28:00
18:28:30
18:29:30
18:30:00
18:30:30

Bumps of user2:
18:29:00
18:30:00

由于user2仅发送了两个颠簸,user1同时也发送了颠簸(差异为60秒),因此两个用户的时间跨度应为1分钟。

有没有可以计算出来的算法?

编辑澄清:我想尽可能短的时间,也可能有一个很大的差距,蚂蚁然后可能有另一个时间跨度(所以基本上会有很多时间跨度)。

1 个答案:

答案 0 :(得分:3)

它与合并排序中的合并步骤非常相似。

如果X和Y是碰撞时间列表,请先对它们进行排序。之后,请按以下条件继续浏览这两个列表:

If diff(X[i],Y[j]) < 60 "Output something";

If (X[i]<Y[j])i++;
Else j++;