0

私が知っているのは、線形検索と順次検索が同じであることです。私の知識が正しければ、以下のアルゴリズムが線形検索で機能するかどうかを親切に教えてください。これは順次検索アルゴリズムであるためです。

  1. searcharray、searchno、length を初期化します。
  2. pos=0 に初期化します。
  3. pos<=length になるまでステップ 4 を繰り返します。
  4. if searcharray[pos]=searchno
    return pos
    そうでなければ
    pos を 1 増やします。

次に、配列の最初の要素で見つかった値を移動する方法について助けが必要です

4

1 に答える 1

0

配列からの数値の線形検索。成功または失敗の可能性があります。

アルゴリズムは、成功または失敗のリターンを定義する必要があります。成功の位置インデックスや失敗の負の数など。

次のように考えてみてください。位置が見つかるまで移動します。

あなたの番号は、ターゲットとして定義します。指定された長さと配列 A.

int linearSearch(int target, int* A, int length) {
  int pos = length - 1;
  while ( pos >= 0 and target != A[pos] ) --pos;
  return pos;
}

ここで、ターゲット番号が配列にない場合は、-1 が返されます。

これはシンプルでエレガントです。ただし、ターゲット番号が重複している場合は、それらをどのように処理するかを考える必要があります。見つかった 1 つを返すか、すべての位置を返します。

于 2013-09-05T15:27:43.757 に答える