假设现在的计算机比Appel做实验时所用的计算机快1000倍。如果使用相同的总计算时间(大约一天),对于O(n²)算法和O(nlog n)算法,问题的规模n分别增加到多少
时间: 2024-01-02 19:02:49 浏览: 65
假设使用相同的总计算时间来运行O(n²)算法和O(nlogn)算法,现在的计算机比Appel做实验时所用的计算机快1000倍。
对于O(n²)算法,时间复杂度为T1 = k1 * n²,其中k1是一个与n无关的常数,表示对于每个输入规模n,算法需要的总计算时间。现在的计算机比Appel做实验时所用的计算机快1000倍,因此,总计算时间变为原来的1/1000,即:
T1' = T1 / 1000 = k1 * n² / 1000
对于O(nlogn)算法,时间复杂度为T2 = k2 * nlogn,其中k2是一个与n无关的常数。现在的计算机比Appel做实验时所用的计算机快1000倍,因此,总计算时间变为原来的1/1000,即:
T2' = T2 / 1000 = k2 * nlogn / 1000
将T1'和T2'相等,求解n,可以得到:
k1 * n² / 1000 = k2 * nlogn / 1000
n = (k2 / k1) * logn
将logn移项,得到:
n - (k2 / k1) * logn = 0
因此,问题的规模n为logn的解,即:
n = e^(k2 / k1)
其中,e是自然对数的底数,约等于2.71828。
综上所述,对于O(n²)算法和O(nlogn)算法,问题的规模n分别增加到e^(k2 / k1)。
阅读全文