0

我想从给定位置开始枚举一个排序集。假设我的集合包含 [1,2,10,23,30]。我想搜索 10 然后从该位置枚举。我相信从排序集中的固定位置进行的枚举在 O(n) 中运行,其中 n 是您要访问的元素数。但是按索引访问是 O(log n)。因此,如果我试图说找到 10 并获得索引 2,然后执行索引 2 - N 的 for 循环,这将是运行时 O(n log n),这是不可接受的。

有人在这里有经验吗?

4

2 回答 2

1

使用GetViewBetween。它是为范围扫描而制作的。

每当我使用一个新类时,我都会在 Reflector 中查看它的成员,以尝试在那里发现有用的宝石。

于 2013-01-27T17:25:15.043 回答
0

s.SkipWhile(x => x < 10)应该是O(n),其中 n 是列表中的元素数。

从一个元素移动到下一个元素很快;如果按索引查找,则从一开始就移动到第i个元素可能不是。

于 2013-01-27T17:13:03.927 回答