我需要实现一个在序列上滑动的滑动窗口。 (1:[0,1,2,3] 2:[1,2,3,4],...) 哪个aprove可能更快? 1。
for each step i; {List=wholeList.sublist(i,i+windowlen)}
或2.
List window=wholeList.sublist(0,window);
for each i{
window.remove(0);
window.add(i+windowlen);
}
我用system.currtime bla来测量时间.. + -std SubLists似乎工作得更快..但为什么呢?我认为第二个方法是O(n)
我需要操作庞大的数据库..因此我需要看看这个..
MFG 扬
答案 0 :(得分:1)
假设删除步骤只是步骤2的一部分,它们不等同,因此比较它们是没有意义的。第二个修改了subsist和底层列表。我怀疑(2)是否会起作用。我认为没有任何理由超越(1)。