gpt4 book ai didi

c# - 连续性能

转载 作者:行者123 更新时间:2023-11-30 22:44:05 25 4
gpt4 key购买 nike

我正在阅读 blog post在 msdn 上关于迭代器,它讨论了 Concat 如何具有 O(m^2) 性能,其中 m 是第一个 的长度IEnumerable。 richard_deeming 在第二页的评论之一提供了一些示例代码,他说这些代码要快得多。我真的不明白为什么它更快,希望有人能向我解释一下。

谢谢。

最佳答案

他只是说不用 Concat 来创建一个迭代器,这实际上等同于在以下位置创建一个迭代器:

...(((a+b)+c)+d)...

这是由于:

for (int i = 0; i < length; ++i)
ones = ones.Concat(list);

创建您需要的迭代器列表,并返回您之前创建的每个迭代器。

这样你就不会在第一个元素集合中得到很多堆叠迭代器。

另外值得一提的是,关于 O(m^2) 的说法并不是“真的正确”。在这种特定情况下确实如此,但这就像在计算 (((a+b)+ c)+d)... 大小写。正是特定的使用模式使其成为 O(m^2)

关于c# - 连续性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3604853/

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