【发布时间】:2010-10-25 12:22:28
【问题描述】:
是否有任何关于 .NET 集合类(Dictionary<K,V>、List<T> 等)方法的渐近复杂性(big-O 和其他)的资源?
我知道 C5 库的文档包含一些有关它的信息 (example),但我也对标准 .NET 集合感兴趣...(并且 PowerCollections 的信息也很好)。
【问题讨论】:
-
通过类的复杂度,我会考虑圈复杂度而不是渐近时间/空间复杂度。我会将后者归因于类中的操作。
-
您始终可以编写一个程序来为您感兴趣的特定函数计时,针对各种输入模式绘制结果与 N 的关系。我认为没有记录时间复杂度的主要原因是这是一个实现细节,因此 .NET 团队保留在未来更改实现细节的权利。因此,这些类的规范是基于它们的功能而不是它们的性能。如果某个特定的性能特征对您的要求非常重要,那么最好自己实现该算法。
标签: .net collections big-o asymptotic-complexity