算法-如何获得时间序列中活动会话的计数?

时间:2018-12-15 03:40:16

标签: algorithm graph time-series

我有一个表,我们在其中维护用户的登录和注销时间。现在,我想显示一个表来管理具有活跃用户数量的表,例如:

00:00-250
00:15-225
00:30-240
00:45-190
01:00-240
....
..

我们应该使用哪种算法?

先谢谢您了:)

2 个答案:

答案 0 :(得分:0)

使列表/数组具有成对(time; incr = +1 for login, -1 for logout)

按时间键排序列表

制作ActiveCount = 0

遍历列表,将incr添加到ActiveCount

每一刻ActiveCount的值对应于活动用户数

  login: 0; logout: 4
  login: 2; logout: 6
  list 
   (0;1), (2;1), (4;-1), (6;-1)
 count 
 0   1     2       1       0

答案 1 :(得分:0)

您可以简单地遍历所有用户的登录-注销对列表,并将用户(或增加该用户的计数)放入适当的存储桶中。现在,如果特定用户跨越多个存储桶,则必须考虑将该用户(或增加该用户的计数)放入多个存储桶。

关于算法的全部。可能是最简单的一个。

如果要详细介绍实现细节,可以使用 @PrepareForTest({Base64.class}) public class ImageLoaderTest extends PowerMockTestCase HashMap,其键是您要报告用户数量的时间,其值将从零,则每次获得新用户时都会将该值递增。