2

このループの最悪の場合の実行時間を計算するにはどうすればよいですか?

for(int i=1 ; i * i < n ; i*=2)

{
     //do something
}
4

3 に答える 3

1

それを築き上げましょう--

初め:

for (int i = 1; i < n; i *= 2) --> log(n)

それで:

for (int i = 1; i * i < n; i ++) --> sqrt(n)

したがって、あなたのループは log(sqrt(n)) の影響を受けるようです

于 2012-10-21T21:50:10.757 に答える
1

なぜならi = 0i*=2はまだ= 0であり、これは永遠に実行されるからですn > 0

于 2012-10-21T21:43:03.363 に答える