2016-05-30 23 views
0

私はData Structures and Algorithmsの注釈を使い、Time ComplexityとBig-O表記に関する次の例を見つけました:Example 1Example 2Example 3実行された操作の数を数えます各行。私は、最初の例のほとんどすべての行が2の倍数を前に持っているのに対し、他の2つの例はそうでないことを理解できませんでした。明らかに、これは結果として得られるO(n)には影響しませんが、2がどこに来たか知りたいと思っています。アルゴリズムのステップ数を調べる

+0

がかかるので、それは、お互いに完全に矛盾しています。他のスライドや写真がなければ、それは私にとってはあまり意味がありません。たぶん、これらの写真には何かがありません。 (最初の入力+出力の説明もありません)。しかし、スライドとの互換性がない唯一の可能な説明は、アルゴリズム1が最大値と最小値を一緒に計算している場合です。 – sascha

+0

多分、彼らは彼らがビッグオーについて話すことになっていたことの半分を理解したでしょう。そうでなければ私は理由を見ません2 –

+0

いくつかのO記法を取り除いても、それは可変増分(incカウンタ)が* 1ステップ*以上であることは意味がありません。 – sascha

答えて

1

私は、スライドの作成者の怠慢の1つしか説明できません。

適切な分析では、どのような操作がどの入力時に実行されるのかを説明しなければなりません(たとえば、、21ページ)。これがなければ、2つの数の乗算を1演算または2演算と数えるかどうかを確かめることさえできません。

これらのスライドは矛盾しています。例:

スライド1では、currentMax = A[0]は2回の操作を実行します。 1つの操作として配列内の0番目の要素を見つけて、もう1つの要素として割り当てることができればよいのです。しかし、slide3 nの反復では、s = s + X[i]はn回の操作を必要とします。つまり、s = s + X[i]には1回の操作が必要です。また、1つのカウンタを増やしても意味があります。

しかし、それはa = X[0]が2回の操作であることを理にかなっていない、とあなたがより多くを行うa = a + X[0]は本当に奇妙に見えるそれだけで1

関連する問題