确定算法的执行次数

帕特里克(Patryk Wojcieszak)

我有这样的算法。

for(int i=1; i<=n; i++){
  for(int j=1; j<=2*n; j=j+2)
  {
     for(int k=i; k<=j; k++)
     {
        instr;
     }                                  
  }
}

我需要找到一个确定“ instr”指令将执行多少次的公式。

我写的 在此处输入图片说明但是我的价值观不正确。例如对于n = 4,“ instr”将被执行43次,但是我从总和中得到40。

我哪里搞砸了?

梦境崩溃

我哪里搞砸了?

您应用总和的方式。您的公式是正确的。编码:

for(int i=1; i<=n; i++){
  for(int j=1; j<=2*n; j=j+2)
  {
     for(int k=i; k<=j; k++)
     {
        instr;
     }                                  
  }
}

在语义上与:

for(int i=1; i<=n; i++){
    for(int j=1; j<=n; j++)
    {
        for(int k=i; k<=2*j - 1; k++)
        {
           count++;
        }
    }
}

实际运行类似:

public class Main {
    public static void first_loop(int n ){
        int count = 0;
        for(int i=1; i<=n; i++){
            for(int j=1; j<=2*n; j=j+2)
            {
                for(int k=i; k<=j; k++)
                {
                    count++;
                }
            }
        }
        System.out.println("First loop "+count);
    }

    public static void second_loop(int n ){
        int count = 0;
        for(int i=1; i<=n; i++){
            for(int j=1; j<=n; j++)
            {
                for(int k=i; k<=2*j - 1; k++)
                {
                    count++;
                }
            }
        }
        System.out.println("Second loop "+count);
    }


    public static void main(String[] args)
    {
       for(int n = 1; n < 10; n++){
           System.out.println("FOR N="+n);
           first_loop(n);
           second_loop(n);
       }
    }
}

会告诉您该公式是正确的:

输出:

FOR N=1
First loop 1
Second loop 1
FOR N=2
First loop 6
Second loop 6
FOR N=3
First loop 19
Second loop 19
FOR N=4
First loop 43
Second loop 43
FOR N=5
First loop 82
Second loop 82
FOR N=6
First loop 139
Second loop 139
FOR N=7
First loop 218
Second loop 218
FOR N=8
First loop 322
Second loop 322
FOR N=9
First loop 455
Second loop 455

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

算法中的执行次数

来自分类Dev

如何确定CPU每秒执行的测试次数?

来自分类Dev

算法反演次数(Python)

来自分类Dev

算法的时间复杂度仅基于循环执行次数来计算吗?

来自分类Dev

算法的时间复杂度是否仅根据循环执行次数计算?

来自分类Dev

尝试确定算法目标

来自分类Dev

确定等效类的算法

来自分类Dev

计算Dijkstra算法的跳跃次数?

来自分类Dev

计算执行if语句的次数

来自分类Dev

从图像确定气泡大小的算法

来自分类Dev

确定加权奖励的算法/查询

来自分类Dev

确定TicTacToe游戏状态的算法?

来自分类Dev

确定数组大小的算法

来自分类Dev

方向确定算法混合左右

来自分类Dev

网格列触摸确定算法

来自分类Dev

反向执行算法的捷径

来自分类Dev

A星算法:执行缓慢

来自分类Dev

如何计算算法中的运算次数?

来自分类Dev

使用排序方法对算法次数进行排序

来自分类Dev

算法问题的交换次数错误

来自分类Dev

用于计算链表中出现次数的算法

来自分类Dev

如何计算算法中的运算次数?

来自分类Dev

排序算法中不同列表的比较次数

来自分类Dev

如何打印程序执行的次数?

来自分类Dev

函数执行次数超出预期

来自分类Dev

如何打印程序执行的次数?

来自分类Dev

如何获得查询执行的次数

来自分类Dev

了解执行计划中的执行次数

来自分类Dev

使用JGit确定前后提交的次数