我在Python交互式网站上偶然发现了这个问题,我想知道如何在Java中逐步计算这个问题的持续时间,以便我可以显示它的时间效率。
int i = n;
while (i > 0)
{
int k = 2 + 2;
i = i / 2;
}
答案 0 :(得分:3)
假设输入n = i = 2 x 。
每一步将i除以2:所以i = 2 x 变为2 x-1 。
重复到0,我。即2 -1 。 (*)
所以步数= x~log 2 n
*实际上,2 -1 = 1/2,但就整数除法而言,它将是2 0 = 1除以2的最后一步,结果为0。