比较两种算法的时间复杂度

时间:2019-09-19 23:02:54

标签: algorithm time-complexity

该问题建议两种算法分别将T_A(n)= 0.0001n ^ 2和T_B(n)=50√n(微秒)用于问题大小n。问题问,在什么输入大小下算法A会比B更好。我如何找到它?

我找到了一个类似的问题,但我没有完全理解它的解决方案。类似问题的算法的运行时间为T_A = 0.1n ^ 2logn(以2为底)和T_B = 2.5n ^ 2

解决方法如下:

2.5n^2 < 0.1n^2 log2 n
2.5 < 0.1 log2 n
25 < log2 n
2^25 < n

因此,当n大于2 ^ 25时,算法2更好。

1 个答案:

答案 0 :(得分:1)

假设两种算法解决了相同的问题。在这种情况下,如果T_A <T_B,则可以说算法A优于算法B,因为算法运行时间较短。

T_A <T_B不等式对于n的哪个值成立? 替换T_AT_B的表达式,您将得到

enter image description here

您可以学习如何用笔和纸解决此类不平等问题,例如heresolve it graphically and algebraically using an engine for symbolic math like Wolfram Alpha。 如果这样做,仅当n小于某个阈值时,您才会看到T_A小于T_B。超过该阈值,B会“比A更好”,因为随着n的增加,平方根函数(如T_B)的增长要慢于平方函数(如T_A)。