したがって、私は本日中期にデータ構造を取得し、次のネストされたループの実行時間をBig O表記で決定するように求められました。
for (int i = 0; i < n-1; i++) {
for(int j = 0; j < i; j++2) {
//1 Statement
}
}
実行時間を決定する背後にある式を理解するのに苦労しています。内側のループには1つのステートメントがあり、系列方程式(n *(n-1))/ 2を使用しているので、1n *(n-1)/ 2.と計算しました。したがって、(n ^ 2 --1)/ 2.したがって、ランタイムをO(n ^ 2/2)に一般化しました。これが正しいかどうかはわかりませんが、jは2の間隔でアップされているので、答えを2で割る必要がありましたか?それとも私の答えは完全にずれていますか?
正確には、//1 statement
は、特定のコードのBig-O表記を計算する上で非常に重要です。しかし、一定の時間がかかることを考えると(count + = 1ステートメントと想定しています)、ソリューションは次のようになります。
(Sigma i (over 1 to n) (Sigma j (over 1 to i))
そして、これはO(n ^ 2)につながります。
これで問題を解決することをお勧めします link 1回。これらはあなたに良い考えを与えるでしょう。