広告スペース(バナー)
🐹Go レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 33 / 68
二分探索(バイナリサーチ)のアルゴリズム
このレッスンでは、Goで二分探索(バイナリサーチ)のアルゴリズムを実装する方法を学び、効率よく値を探す考え方を理解することを目標にします。「Go言語 二分探索 実装」で調べている方向けです。
二分探索は、並び替え済みのデータから目的の値を効率よく探すアルゴリズムです。「辞書を開くとき、真ん中あたりから探して範囲を半分に絞っていく」ようなイメージです。
サンプルコードでは、lowとhighという2つの位置から範囲の中央midを計算し、目的の値と比較しながらlowかhighを更新して範囲を絞り込んでいます。先頭から1つずつ調べる方法に比べて、データ量が多いほど圧倒的に速く目的の値を見つけられます。
初心者がよくつまずくのが、二分探索を使うには配列が事前に並び替えられている必要がある点です。探索対象のデータがすでに並び替えられていることが前提条件なので、事前のソートを忘れないようにしましょう。
実際の開発現場では、標準ライブラリにもsort.Searchという実装があり、大量のデータから高速に値を探したい場面で広く応用されています。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではGoを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
大量のデータの中から目的の値を高速に見つけ出せるようになります。
大量のデータの中から目的の値を高速に見つけ出せるようになります。
広告スペース(バナー)
広告スペース(記事内)