运行 双输入的时间复杂度
Running Time Complexity for double input
假设您有一个算法,可以在您的计算机上准确地在 1 秒内完成大小为 n=1000 运行s 的输入。如果算法的时间复杂度为 T(n)= Θ(2^n),那么对于大小为 n=2000 的输入,算法将花费多长时间 运行 的最佳猜测是什么?
对于Θ(nlogn)类似,当输入加倍时,我知道它在2秒(Θ(n))和4秒(Θ(n^2))之间,但是有没有办法更准确些?
一般来说,如果是Θ(n^2),我可以从数学上推导出,对于double n,时间复杂度是4秒,对于Θ(n),时间复杂度是2秒,对于Θ( n^3) 8 秒。但是上面的问题让我很困惑。
非常感谢任何帮助。
由于第一个函数的运行时间是 O(2^n),如果你从 n=1000 到 n=2000,你的运行时间将乘以... 2^1000。哎呀
对于你的第二个问题,是的,时间乘以2log(2)。如您所见,此逻辑不会外推到 any 运行时,但在这种情况下它有效。
假设您有一个算法,可以在您的计算机上准确地在 1 秒内完成大小为 n=1000 运行s 的输入。如果算法的时间复杂度为 T(n)= Θ(2^n),那么对于大小为 n=2000 的输入,算法将花费多长时间 运行 的最佳猜测是什么?
对于Θ(nlogn)类似,当输入加倍时,我知道它在2秒(Θ(n))和4秒(Θ(n^2))之间,但是有没有办法更准确些?
一般来说,如果是Θ(n^2),我可以从数学上推导出,对于double n,时间复杂度是4秒,对于Θ(n),时间复杂度是2秒,对于Θ( n^3) 8 秒。但是上面的问题让我很困惑。
非常感谢任何帮助。
由于第一个函数的运行时间是 O(2^n),如果你从 n=1000 到 n=2000,你的运行时间将乘以... 2^1000。哎呀
对于你的第二个问题,是的,时间乘以2log(2)。如您所见,此逻辑不会外推到 any 运行时,但在这种情况下它有效。