collection.Where(i => i.condition)
.ToList()
.ForEach(i => SomeComplicatedOpInvolving_i);
Run Code Online (Sandbox Code Playgroud)
我不是在寻找答案,告诉我有一种更简单的方法可以做到这一点,只需将其视为思想实验.
首先,我是否认为这是三个循环?Where()
,ToList()
和ForEach()
?
第二,(假设它是三个循环)我是否正确地认为这是大O符号中3的幂?
感谢大家.
不,实际上。我认为应该是O(n)。
Where()
运行时间为 O(n)(假设condition
为常数)
ToList()
也运行所有结果Where
,所以 O(n) 也是
ForEach()
遍历ToList
一次生成的整个列表,因此也是 O(n)。我认为SomeComplicatedOpInvolving_i
与 i 的数量无关......
这里的关键点是循环不是嵌套的,它们一个接一个地运行 - 所以总运行时间是 3*O(n),这与 O(n) 相同。
归档时间: |
|
查看次数: |
125 次 |
最近记录: |