排序集 从起始位置枚举

  • 本文关键字:位置 枚举 排序 c# c#-4.0
  • 更新时间 :
  • 英文 :


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

有人在这里有经验吗?

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

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

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

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

最新更新