0
このアルゴリズムの時間の複雑さは何ですか?その理由は何ですか?説明付きの次のコードの時間の複雑さ?
int count = 0;
for (int i = N; i > 0; i /= 2) {
for (int j = 0; j < i; j++) {
count += 1;
}
}
正解はO(n)ですが、O(nlogn)を取得しています。誰がなぜそれがO(n)なのか教えてもらえますか?
試しましたか?立ち往生した場所とその理由を説明してください。これは宿題サービスではありません。 – 4castle
はい、私はしました。問題は、外側ループはO(logn)を実行し、内側ループは外側ループまで実行されるということです。したがって、それはO(nlogn)でなければなりません。しかし、それはO(n)に減らすことができると思います。だから、私は数学的にどのように知りたいですか? –
はい、これはO(nlogn)にする必要があります。しかし答えはO(n)です。そうです、どうですか? –