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

Posted brainthink

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌套循环遍历算法分析比较相关的知识,希望对你有一定的参考价值。

第一段代码:

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的时候第一段代码运行次数高于第二段的

 








以上是关于嵌套循环遍历算法分析比较的主要内容,如果未能解决你的问题,请参考以下文章

Python基础知识进阶(五---2)----程序基本结构简单分支异常处理三大实例分析基本循环结构通用循环构造方法死循环嵌套循环布尔表达式

基于二叉树的层次遍历算法分析

广度优先搜索(BFS)思路及算法分析

数据结构算法——算法复杂度分析

[算法]复杂度分析

过程与算法(用算法解决实际问题的能力)