正と負の両方の整数を持つ無限長の並べ替えられた配列が与えられます。その中の要素を見つけます。
編集
配列内のすべての要素は一意であり、配列は正しい方向に無限にあります。
次の 2 つの方法があります。
アプローチ 1:
インデックスを 100 の位置に設定します。見つかった要素が小さい場合は、前の 100 項目でバイナリ検索を行います。それ以外の場合は、次のインデックスを 200 の位置に設定します。このようにして、項目が大きくなるまでインデックスを 100 ずつ増やし続けます。
アプローチ 2:
インデックスを 2 のべき乗で設定します。最初にインデックスを 2 の位置に設定し、次に 4、8、16 の順に設定します。再度、2^K から 2^(K + 1) までの二分探索を実行します。
最良の場合と最悪の場合の両方で、2 つのアプローチのどちらが優れているでしょうか?