[解決済み】whileループの時間複雑性とは?
質問内容
whileループの時間複雑性を調べたいのですが、何から手をつけていいのかわかりません。forループの複雑さのクラスを見つける方法は理解していますが、whileループになると完全に分からなくなります。どこから始めればいいのか、何かアドバイスやヒントがあれば教えてください。
以下は問題の例です。
x = 0;
A[n] = some array of length n;
while (x != A[i]) {
i++;
}
解決方法は?
何かをしなければならないとき
n
回、やらなければならない
n
回です。を使うことができます。
for
ループ、または
while
ループなど、プログラミング言語(または擬似コード!)が提供するものであれば、何でも構いません。
ざっくり言うと、ビッグO記法は、あなたがしなければならない仕事の量についてコメントし、あなたがそれをどのように行うかは気にしません(もう少しざっくり言うと、入力の増加に伴って行う必要のある仕事の量がどのように増加するかについてコメントしています)。
詳しくは続きをお読みください。
ここが混同されているのでは?
for
と
while
は、繰り返される操作を表現するためのプログラミング言語の構成要素である。
アルゴリズム解析は、実装の言語にとらわれず、アルゴリズムを表現する際に実際に使用する構成要素にはこだわらない。
次のようなことを考えてみてください。
1. Input n
2. Do OperationX n times
ビッグ・オー記法機械は、上記の操作の複雑さをコメントするのに役立ちます。これは多くの場合において役立つ。例えば、上の操作と次の操作の実行時間を比較するのに役立つ。
1. Input n
2. Input m
3. Repeat m OperationX n times.
ビッグ・オー記法では、前者がO(n)、後者がO(m * n)となる(と仮定する)。
OperationX
は一定の時間を要する)。
好きなループ構成でコードを書いても問題ない。
for(int i = 0; i < n; i++) {
operationX;
}
が最初の操作であり
i = j = 0;
while(i < n) {
j = 0;
while(j < m) {
operationX;
j++;
}
i++;
}
2つ目 ビッグ・オー記法では、forとwhileが入れ替わっていたとしても、特に気にすることはない。
A[n] = some array of length n;
for(x = 0;x != A[i];i++) {
}
は
for
の質問を同じ複雑さで書き直したものです(
O(n)
).
関連
-
[解決済み】パックマン:主にどのようなヒューリスティックが使われているのですか?
-
[解決済み】なぜO(n)はO( nlog(n) )よりも優れているのでしょうか?)
-
[解決済み] ポイントルック アット ポイント
-
[解決済み] O(log n)とは具体的にどのような意味ですか?
-
[解決済み] ゲーム「2048」の最適なアルゴリズムとは?
-
[解決済み] 末尾再帰とは何ですか?
-
[解決済み] 簡単な面接問題が難しくなった:1~100の数字が与えられたとき、ちょうどk個の数字が欠けていることを見つけなさい。
-
[解決済み] ヒープの構築はどうして時間計算量O(n)になるのですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】アルゴリズムの時間複雑性を求めるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Dijkstraのアルゴリズムが負の重みのエッジに対して機能しないのはなぜですか?
-
[解決済み】パックマン:主にどのようなヒューリスティックが使われているのですか?
-
[解決済み】クイックソートとヒープソートの比較
-
[解決済み] このHeld-Karp TSP Pseudocodeの説明をお願いします。
-
[解決済み] 決定論的クイックソートとは何ですか?
-
[解決済み] 放物線を点の集合にフィットさせる最速の方法?
-
[解決済み] CLRSの相対的漸近成長に関する問題(表)の解き方について教えてください。
-
[解決済み] log(n!)=Θ(n-log(n))でしょうか?
-
[解決済み] 与えられた数列の中に現れない最小の正の整数を求めよ。
-
[解決済み] クイックソートとマージソートの比較 [重複]。