Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
このループの最悪の場合の実行時間を計算するにはどうすればよいですか?
for(int i=1 ; i * i < n ; i*=2) { //do something }
それを築き上げましょう--
初め:
for (int i = 1; i < n; i *= 2) --> log(n)
それで:
for (int i = 1; i * i < n; i ++) --> sqrt(n)
したがって、あなたのループは log(sqrt(n)) の影響を受けるようです
なぜならi = 0、i*=2はまだ= 0であり、これは永遠に実行されるからですn > 0
i = 0
i*=2
= 0
n > 0