有效地汇总删除和插入索引

时间:2019-07-02 15:12:12

标签: algorithm data-structures

我有一个用于更新UI的类型。这是它的伪代码。

{
  Item[] AllItems;
  long[] ItemsRemovedFromPreviousUpdateByIndex;
  long[] ItemsAddedToPreviousUpdateByIndex;
}

这些更新非常频繁,并且包含大量数据。我们希望聚合这些实例,并且每200毫秒仅向UI提供一次更新。每200ms窗口可能有20或30个更新。

我的问题是是否有一种汇总索引的好方法。我想不出没有分配大量内存的方法。

1 个答案:

答案 0 :(得分:0)

我会尝试将这些数据存储在一对import restaurantPassport from '../assets/images/restaurantpassport.png'; <img src={restaurantPassport} />; def runmodel(): ## omitting code for brevity result = pd.DataFrame({ 'Title for a': a, 'Title for b': b, 'Title for c': c, 'Title for d': d, 'Title for e': e, }) return result int中,具体取决于您拥有多少索引。

首先考虑做这样的事情:

long

当且仅当未添加/删除相应索引处的项目时,布尔值才为true。

但是,除了执行此操作外,我将尝试将布尔数组表示为一个长整数(如果需要的话)为BigInteger。从此开始,tttfftfftf-> 1110010010-> 914。

您可以研究将0转换为1的方法,如果已经是1,则不要理会。您需要在init情况下保持聪明,因为您从全0(即0)开始,并且第一个索引可能很大,因此您需要从BigInteger到{{1 }},只需boolean[] added = new boolean[allItems.length]; boolean[] removed = new boolean[allItems.length]; 。如果需要翻转0处的位,则10...0来自上述初始情况,您可以从那里翻转单个位,并可能进行移位。

请记住,由于1 << nj > n相同,因此每次重置时始终需要知道n数组的长度,因此,如果长度为8,您应该将allItems解释为00001001