1
我在Python交互式网站上偶然发现了这个问题,我想知道如何计算Java中这一步一步的持续时间,以便我可以显示它的时间效率。如何写这个函数的T(n)?
int i = n;
while (i > 0)
{
int k = 2 + 2;
i = i/2;
}
我在Python交互式网站上偶然发现了这个问题,我想知道如何计算Java中这一步一步的持续时间,以便我可以显示它的时间效率。如何写这个函数的T(n)?
int i = n;
while (i > 0)
{
int k = 2 + 2;
i = i/2;
}
假设输入n = i = 2 x。
每一步除以2:所以i = 2 x变成2 x-1。
这一直重复,直到0,我。即2 -1。 (*)
所以步骤= x个〜登录Ñ
*实际上,2 -1 = 1/2,但在整数除法而言这将是最后一个step 2 = 1除以2,结果为0.
'T(log2(n))'...... –
'k'在这里做什么? –
你可以把它放到一个函数中,调用该函数100 000次,并在调用该方法之前和之后使用'System.currentTimeMillis()'总结花费在100 000次的时间,然后重复进行大范围的输入值。然后,您可以将其导出到.csv文件(使用某种API或将结果“打印”到控制台),并将其绘制在Excel或某种电子表格软件中。 –