我有一个表,我们在其中维护用户的登录和注销时间。现在,我想显示一个表来管理具有活跃用户数量的表,例如:
00:00-250
00:15-225
00:30-240
00:45-190
01:00-240
....
..
我们应该使用哪种算法?
先谢谢您了:)
答案 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
,其键是您要报告用户数量的时间,其值将从零,则每次获得新用户时都会将该值递增。