2017-09-08 3 views
-1

要素499に整数5215、要素686に整数7282を検索するために、バイナリ検索アルゴリズムであり、配列内の要素の総数が1000であると仮定すると、いくつの要素を検索(バイナリ検索)する必要がありますか?整数5215を499番目の要素に、整数7282を686番目の要素に配置するために検索する必要がある要素はいくつですか?

問題を解決するにはどうすればよいですか?私はこのアルゴリズムが配列の要素の総数を半分に分割して最初に検索値(または見つけたい要素)が中央にあるかどうかを調べることを知っています。しかし、そこになければ配列の上半分をチェックしますが、そこになければ再び下に戻ります。また、HTMLコードに埋め込まれている質問をする前に、この問題を研究したことの証拠があります。私は(ただし理論を持っている:)

1000/2の下に私の理論を参照ください

は=最初の要素は、次の要素が250要素であり、500要素

2分の500です。

+0

@Will 1000要素配列に0-999のインデックスがあることを知っていますので、最初に理解し始めますか? – dorakta

+0

バイナリ検索では、配列がソートされていることが前提です。あなたの例では、499の項目が686の項目より大きいので、配列を昇順でソートすることはできません。配列は降順でソートされていますか?配列がソートされていない場合、バイナリ検索は機能しません。 –

+0

@ Jim Mischel 499インデックスが5215、686インデックスが7282の場合はどうですか?申し訳ありません。 – dorakta

答えて

-1

あなたの質問は謎めいているようですが、助けが必要な場合はバイナリ検索アルゴリズムをお手伝いします。

バイナリ検索アルゴリズムは、並べ替えが昇順または降順の場合に機能します。

このアルゴリズムは最初の繰り返しで配列の中の要素にアクセスし、奇数の場合はn/2に、奇数の場合はn + 1/2でない場合、アルゴリズムは検索要素が大きいか小さいかをチェックします下位半分がアクセスされていればアクセスされ、配列の上半分より大きい場合はアクセスされます。これは、配列が昇順でソートされている場合です。

時間の複雑さのために、O(log n)として最悪のシナリオが得られます。ここで、nは配列内の要素の数であり、配列の長さです。

希望しました。

関連する問題