Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这种方法的时间复杂度是多少?_Java_Time Complexity - Fatal编程技术网

Java 这种方法的时间复杂度是多少?

Java 这种方法的时间复杂度是多少?,java,time-complexity,Java,Time Complexity,下面是我上面提到的方法的代码。这是解决经典河内塔问题的算法的一部分。我只是不知道这个问题的时间复杂性,因为它有相当多的递归 这是类Tower中的一个方法。moveTopto是O1,因此不应影响运行时 递归算法复杂性分析的良好解释 注:如果你懒得打开链接理解,只想得到答案-复杂度~O2^n,这取决于moveTopto和buffer.moveTopto的时间复杂度 基本上要计算复杂度,你必须把时间加起来。n的时间将是n-1的时间,加上moveTopto的时间加上buffer.moveTopto的时

下面是我上面提到的方法的代码。这是解决经典河内塔问题的算法的一部分。我只是不知道这个问题的时间复杂性,因为它有相当多的递归


这是类Tower中的一个方法。moveTopto是O1,因此不应影响运行时

递归算法复杂性分析的良好解释


注:如果你懒得打开链接理解,只想得到答案-复杂度~O2^n

,这取决于moveTopto和buffer.moveTopto的时间复杂度

基本上要计算复杂度,你必须把时间加起来。n的时间将是n-1的时间,加上moveTopto的时间加上buffer.moveTopto的时间加上常数。现在您可以看到,它将至少具有ON,但可以具有更高的时间复杂度,特别是当buffer.movetop具有非常量时间复杂度时


如果你的意思是Buffer.moveTopto,那么时间大约是n-1时间的两倍,也就是说,tn=2*tn-1+常数。这就给出了O2^n.

这个语句缓冲区是什么,moveDisksn-1,destination,this?时间复杂度也取决于moveTopto。包含它以获得更好的答案。请将完整的代码粘贴到此处,以便我们更好地理解它。现在,您需要告诉我们buffer.moveDisks是什么,该方法的时间复杂度是多少?@CydrickT请删除您的评论,尝试清理此问题此视频实际上包含了我需要的所有内容。我没想到人们会制作一个关于河内塔运行时间问题的视频!视频更有用,但这绝对是更有效的答案!
class Tower {
      public void moveDisks(int n, Tower Destination, Tower Buffer) {
         if (n > 0) {
            moveDisks(n-1, Buffer, Destination);
            moveTopto(Destination);
            Buffer.moveDisks(n-1, Destination, this);
        }
    }
}