2015-04-22 105 views
1

我在Python交互式网站上偶然发现了这个问题,我想知道如何计算Java中这一步一步的持续时间,以便我可以显示它的时间效率。如何写这个函数的T(n)?

int i = n; 
while (i > 0) 
{ 
    int k = 2 + 2; 
    i = i/2; 
} 
+5

'T(log2(n))'...... –

+0

'k'在这里做什么? –

+0

你可以把它放到一个函数中,调用该函数100 000次,并在调用该方法之前和之后使用'System.currentTimeMillis()'总结花费在100 000次的时间,然后重复进行大范围的输入值。然后,您可以将其导出到.csv文件(使用某种API或将结果“打印”到控制台),并将其绘制在Excel或某种电子表格软件中。 –

回答

3

假设输入n = i = 2 x

每一步除以2:所以i = 2 x变成2 x-1

这一直重复,直到0,我。即2 -1。 (*)

所以步骤= x个〜登录Ñ


*实际上,2 -1 = 1/2,但在整数除法而言这将是最后一个step 2 = 1除以2,结果为0.

相关问题