n的最小值是什么,使得运行时间为100n ^ 2的算法运行得更快

时间:2014-10-17 09:22:48

标签: algorithm

n的最小值是什么,运行时间为100n ^ 2的算法比同一台机器上运行时间为2 ^ n的算法运行得快?

范围
虽然我对答案很感兴趣,但我更感兴趣的是如何逐步找到答案(这样我就可以重复这个过程来比较任何两个给定的算法)。

来自麻省理工学院新闻算法书

2 个答案:

答案 0 :(得分:3)

你想要n的值,其中100×n 2 小于2×n。

这是100×n 2 的解决方案 - 2×n <1。 0,恰好是0 < n < 0.02

千言万语:

enter image description here

编辑:

最初的问题是2×n,而不是2 n (见评论)。

对于2 n ,前往https://math.stackexchange.com/questions/182156/multiplying-exponents-solving-for-n

答案是15

答案 1 :(得分:3)

首先要知道的是运行时间意味着什么。如果我们在理论上谈论算法,算法的运行时间是完成所需的步数(或时间),具体取决于输入的大小(其中大小为输入例如是比特数,但有时也考虑其他度量)。从这个意义上讲,需要最少步骤数的算法是最快的。

所以在你的两个公式中,n是输入的大小,100 * n ^ 2和2 ^ n是两个算法在给定大小为n的输入时运行的步数。

乍一看,2 ^ n算法看起来比100 * n ^ 2算法快得多。例如,对于n = 4,100 * 4 ^ 2 = 1600和2 ^ 4 = 16。

然而,2 ^ n是指数函数,而100 * n ^ 2是多项式函数。这意味着当n足够大时,情况将是2 ^ n> 1。 100 * n ^ 2。所以你必须解决不平等100 * n ^ 2&lt; 2 ^ N。这已经是一个相当小的n的情况,所以你可以开始评估函数,从n = 5开始,你将在几分钟内得到问题的答案。