二分探索アルゴリズムのフローチャート

フローチャート10ノード教育 · アルゴリズム学習1つのプロンプトから作成
読み取り専用プレビュー

プロンプト

二分探索アルゴリズムのフローチャートを作成してください

自分用に作り直す

フレームワークについて

範囲を絞り込みながら二分探索を追跡する

この10ノードのフローチャートでは、ソート済み配列から対象を検索します。low を 0、high を n マイナス 1 に初期化し、low が high 以下かを確認してから中央位置を計算します。一致する値が見つかれば mid を返し、それ以外の場合は2つ目の比較結果に応じて更新する範囲を選択します。

2つの更新ステップでは、low を mid プラス 1 にするか、high を mid マイナス 1 にしてから、範囲チェックへ戻ります。範囲を使い切ると、フローは -1 を返します。中央位置のボックスには (low+high) / 2 と記載されていますが、整数への丸めについては明示されていないため、コード向けの実装では確認が必要です。

この図は、小さなソート済み配列を使った手作業のトレースに活用できます。各反復の後に low、high、mid を記録し、対象が存在する場合と存在しない場合の両方を試してみてください。この例では一致するインデックスを返しますが、重複する値の最初の要素を探すための専用分岐はありません。

含まれる内容

得られるもの

  • 3つの判断ダイヤモンドを含む10個のアルゴリズムノード
  • low と high の検索範囲を初期化する手順
  • 範囲チェックへループする2つの範囲更新経路
  • mid を返す場合と -1 を返す場合の終端結果
フローチャート

二分探索アルゴリズムのフローチャート

アルゴリズム二分探索コンピューターサイエンスデータ構造

✦ Free preview · Sign in to use

よくある質問

よくある質問

この例では、どのような配列を検索しますか?

この例では、配列がソート済みであることを前提としています。比較ではその順序を利用して範囲を絞り込みます。ソート自体は図の手順には含まれていません。

中央位置の除算はどのように解釈すればよいですか?

このボックスには丸め処理が記載されていません。インデックスを使う実装では、たとえば low + floor((high-low)/2) のように、整数への丸めを明示してください。

検索対象が見つからない場合はどうなりますか?

low が high より大きくなるまで、範囲の更新を繰り返します。その後、low <= high の No 分岐から -1 を返します。

二分探索アルゴリズムのフローチャート

無料で開始。クレジットカード不要。

Free preview · Sign in to use