gpt4 book ai didi

c# - 我认为这个片段是 O(n^3) 是对的吗?

转载 作者:太空狗 更新时间:2023-10-29 21:24:17 26 4
gpt4 key购买 nike

collection.Where(i => i.condition)
.ToList()
.ForEach(i => SomeComplicatedOpInvolving_i);

我不是在寻找答案告诉我有更简单的方法来做这件事,只是把它当作一个思想实验。

首先,我认为这是三个循环是否正确? Where()ToList()ForEach()?
其次,(假设它是三个循环)我认为这是大 O 表示法中的 n 的 3 次方是否正确?

谢谢大家

最佳答案

不,实际上。我觉得应该是O(n)。

Where() 在 O(n) 中运行(假设 condition 是常量)

ToList() 也遍历 Where 的所有结果,所以也是 O(n)

ForEach() 遍历 ToList 生成的整个列表一次,O(n) 也是如此。我假设 SomeComplicatedOpInvolving_i 不随 i 的数量变化......

这里的关键点是循环不是嵌套的,它们一个接一个地运行 - 所以总运行时间是 3*O(n),与 O(n) 相同。

关于c# - 我认为这个片段是 O(n^3) 是对的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7268727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com