zoukankan      html  css  js  c++  java
  • 嵌套循环遍历算法分析比较

    第一段代码:

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

  • 相关阅读:
    jedis 连接 虚拟机内redis服务
    数据库存储过程项目总结
    前端jsp联系项目相关经验
    学习做项目的一些随笔
    循环
    字典
    集合
    元组
    列表
    字符串
  • 原文地址:https://www.cnblogs.com/brainthink/p/9230614.html
Copyright © 2011-2022 走看看