見出し画像

#5 Javaで書いた二分探索法【保存版】

Javaで書いた二分探索法のソースコードです。

/* 二分探索法 */

import java.util.Scanner;

class BinarySearch {

   public static void main(String[] args) {
       Scanner stdIn = new Scanner(System.in);

       int[] a = {5,11,15,18,24,25,29,31,34,45,58,65,71,79,81};        //探索するデータ(要素数は15個)
       int pl = 0;             //探索範囲の先頭の添え字
       int pc;                 //探索範囲の中央の添え字
       int pr = a.length;      //探索範囲の末尾の添え字
       int key;                //キーボードから入力した探すデータ
       int idx = -1;
       int n = 0;
   
       //System.out.println(pr);
       System.out.print("データを入力してください。:");
       key = stdIn.nextInt();

       /* 二分探索処理 */
       do {
           n++;
           pc = (pl + pr) / 2;
           if (a[pc] == key) {
               idx = pc + 1;
               break;
           } else if (a[pc] <= key) {
               pl = pc + 1;
           } else {
               pr = pc - 1;
           }   
       } while (pl <= pr);
       /*--------------*/

       if (idx == -1) {
           System.out.println("探索に失敗しました。");
       } else {
           System.out.println(key + "は" + idx + "番目にあります。");
           System.out.println("探索回数は" + n + "回です。");
       }
   }

この記事が気に入ったらサポートをしてみませんか?