码迷,mamicode.com
首页 > 编程语言 > 详细

嵌套循环遍历算法分析比较

时间:2018-06-26 19:33:44      阅读:179      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!