二分探索アルゴリズムのフローチャートを作成してください
フレームワークについて
この10ノードのフローチャートでは、ソート済み配列から対象を検索します。low を 0、high を n マイナス 1 に初期化し、low が high 以下かを確認してから中央位置を計算します。一致する値が見つかれば mid を返し、それ以外の場合は2つ目の比較結果に応じて更新する範囲を選択します。
2つの更新ステップでは、low を mid プラス 1 にするか、high を mid マイナス 1 にしてから、範囲チェックへ戻ります。範囲を使い切ると、フローは -1 を返します。中央位置のボックスには (low+high) / 2 と記載されていますが、整数への丸めについては明示されていないため、コード向けの実装では確認が必要です。
この図は、小さなソート済み配列を使った手作業のトレースに活用できます。各反復の後に low、high、mid を記録し、対象が存在する場合と存在しない場合の両方を試してみてください。この例では一致するインデックスを返しますが、重複する値の最初の要素を探すための専用分岐はありません。
含まれる内容
二分探索アルゴリズムのフローチャート
✦ Free preview · Sign in to use
よくある質問
この例では、配列がソート済みであることを前提としています。比較ではその順序を利用して範囲を絞り込みます。ソート自体は図の手順には含まれていません。
このボックスには丸め処理が記載されていません。インデックスを使う実装では、たとえば low + floor((high-low)/2) のように、整数への丸めを明示してください。
low が high より大きくなるまで、範囲の更新を繰り返します。その後、low <= high の No 分岐から -1 を返します。
無料で開始。クレジットカード不要。