アルゴリズムの時間の複雑さを計算する方法を忘れてしまいました。その知識をリフレッシュするために本や 30 ページのブログを探しているわけではありません。以下のアルゴリズムを使用して、時間の複雑さを計算する方法を修正してください。ありがとう
線形検索
bool SeqSearch(int[] arr, int sValue) {
for (int index = 0; index < arr.Length-1; index++)
if (arr[index] == sValue)
return true;
return false;
}
使用する手順とロジック
- すべての要素をループします -
N
- 各インデックスの比較 -
1
またはそれはN
- true または false を返す -
1
ついに
これらを合計するか、掛けるか忘れましたか?追加する必要があると思ったので、結局、
N+N+1
これはビッグオーに違いありません!NのO(N)
質問
- 各ステップにかかった時間を掛けるか、足すか
- 比較のために、いつ終了するかを判断することはできません。それで、かかった時間は何ですか(最初のインデックスで見つかる可能性があるため1を想定し、それ以外の場合は最後のインデックスとしてNを想定しました)
- 課題と返却は一定時間 1 ?
注: ウェブサイトを参照しないでください。SOは長く続き、同じ/類似の質問を持っている人は、この投稿への回答が役立つと確信しています. 他のウェブサイトがいつ削除されるかなど信頼できません。また、効率や時間の複雑さについては気にしていませんが、それを見つけるために使用されるプロセス/手順については気にしていません。
リソース
http://faculty.simpson.edu/lydia.sinapova/www/cmsc250/LN250_Weiss/L03-BigOh.pdf
どのステートメントといつを説明するかを明確に説明するこのリンクをpdfに貼り付けたかっただけです。私が欲しかったように。