Algorithm 算法分析:选择最佳算法
我试图解决一个问题,即比较两种算法的最坏运行时间,找出其中一种算法比另一种算法运行时间更快的输入大小 这两种算法是:Algorithm 算法分析:选择最佳算法,algorithm,time,inequality,Algorithm,Time,Inequality,我试图解决一个问题,即比较两种算法的最坏运行时间,找出其中一种算法比另一种算法运行时间更快的输入大小 这两种算法是: A1=2n对数10 n A2=0.1n2 基本上,我试图解决n的以下不等式: 2n log10 n
A1=2n对数10 n
A2=0.1n2 基本上,我试图解决n的以下不等式:
2n log10 n<0.1n2 谁能给我指一下正确的方向吗?
我已设法达到:
log10 n<0.05n==>n<100.05n
但我不知道接下来该怎么办(或者我试图解决这个问题时走错了方向)
提前感谢您的帮助 实际上,你正在试图解决这个不等式 因为算法只会在很短的时间内更快,然后对于任何较大的n值,算法都会更快
忽略案例n 29,算法获胜。实际上,您正在尝试解决不等式 因为算法只会在很短的时间内更快,然后对于任何较大的n值,算法都会更快
忽略情况n29,算法获胜。只需使用sagemath绘制函数图像:plot(0.1*n*n-2*n*log(n,10),n,0,50)
只需使用sagemath绘制函数图像:plot(0.1*n*n-2*n*log(n,10),n,0,50)
也许更适合一些人应该指出说
2n log\u 10 n<0.1n^2
是不正确的(等式不适用于n=1
),你需要说O(2n log\u 10 n)
,为n
指定一个值,或者说“渐近”。也许更适合于某些人应该指出说2n log\u 10 n<0.1n^2
是不正确的(等式不适用于n=1
),你需要说O(2n log\u 10 n)
,为n
指定一个值,或者说“渐近”。谢谢你的回复!我可以问一下为什么40是一个明显的上限吗?我在回答中解释了,但是有人编辑了它并造成了一个拼写错误,我不知道如何纠正他们的拼写错误。错别字是说10040而不是100不小于40。看看这个不等式,很容易理解:当n=20时,10^(n/20)>> fzero(@(x) 10^(x/20)- x, 20)
ans =
29.3531