标签:rem 嵌套循环 分析 foreach 算法分析 remove ... for 次数
第一段代码:
foreach (var item1 in Collection1)
{
foreach (item2 in Collection2)
{
...
}
}
第二段代码:
foreach (var item1 in Collection1)
{
foreach (item2 in Collection2)
{
...
}
Collection2.RemoveAll(x => x.MaterialNo == item1 );
}
假设Collection1长度m
假设Collection2长度n
第一段代码运行次数:m*n
第二段代码运行次数:
(n+(n-(1/m)*n)+(n-(2/m)*n)+...+(n-((m-1)/n)*n))+n
(m*n-(1/m+2/m+...(m-1)/m)*n)+n
(((m+1)/2)n)+n
((m+3)/2)*n
什么时候第一段运行次数>第二段运行次数?
即m*n-((m+3)/2)*n>0
所以当m>3的时候第一段代码运行次数高于第二段的
标签:rem 嵌套循环 分析 foreach 算法分析 remove ... for 次数
原文地址:https://www.cnblogs.com/brainthink/p/9230614.html