【发布时间】:2014-03-28 01:05:15
【问题描述】:
我想知道如何在 R 中以 O(n) 时间在最后 5 分钟内实现价格的移动最大值和最小值。我的数据由两列组成:一列以秒为单位,另一列以秒为单位价格。现在,我取当前时间,减去 5 分钟,最后 5 分钟的子集,然后在每个索引处搜索 min 和 max,所以操作是 O(n^2)。有没有办法在 O(n) 中做到这一点?
样本数据:
时间 [34200.19, 34200.23, 34201.45, ..., 35800, 35800.2, 35800.5]
价格 [100, 103, 102, ..., 95, 97, 99]
【问题讨论】:
-
如果过去 5 分钟的平均事件数保持不变,从技术上讲不是 O(n^2) 而是 O(n)。
-
好吧,在每个索引处,我都在执行 O(n) 搜索最大值和最小值,所以对于整个数据集,那不是 O(n^2) 吗?跨度>
-
搜索最大值仅为 O(1)。你可以说 O(5)...
-
哦,我的示例数据具有误导性,每分钟有很多事务,我只是不想让它过于混乱。