我对GroupBy操作在未索引数据集上的渐近复杂度(大O)感兴趣。目前已知最优算法的复杂度是多少?SQL服务器和LINQ使用的算法复杂度又是多少?
我对GroupBy操作在未索引数据集上的渐近复杂度(大O)感兴趣。目前已知最优算法的复杂度是多少?SQL服务器和LINQ使用的算法复杂度又是多少?
Enumerable.GroupBy
)。当Group By添加到复杂查询中时,方程式会改变,O(n)成为Group By对整个方程式所增加的上限;如果内部复杂查询的解析已经排序,则可能会更少。
O(k)
和 O(1)
。 - user7116在已排序的行(nlog(n) 复杂度下), 可以一次性完成分组(n复杂度), 因此group by的复杂度为 nlog(n), 其中n为行数。如果在group by语句中使用了每列的索引,则不需要进行排序,复杂度为n。