/*------------------------------------ 二分探索(Binary Search)  ------------------------------------*/ import java.util.*; public class Search02Binary { static int youso=10; static int[] num={6,9,19,33,45,49,55,65,70,98}; static int flg; static int answer; // --------------- mainメソッド ------------- public static void main(String[] args) { Scanner sc=new Scanner(System.in); num_display(); System.out.print("\n\n探したい値を入れて下さい-->"); answer=sc.nextInt(); flg=0; binary_search(); if ( flg==1 ) System.out.print("\n見つかりました"); else System.out.print("\nデータが見つかりません"); } // --------------- num_displayメソッド ------------- static void num_display() { System.out.print(youso+"個の数字を探索します"); System.out.print ("(二分探索 Binary Search)\n"); for (int i=0 ; i<=youso-1 ; i++ ) { System.out.print(num[i]+" "); } return; } // --------------- binary_searchメソッド ------------- static void binary_search() { System.out.print("\n----- Search START -----\n"); int kagen,jogen,k; kagen=0; jogen=youso-1; while ( !(flg==1 || kagen>jogen) ) { k=(kagen+jogen)/2; if ( answer==num[k] ) flg=1; else if ( answer>num[k] ) kagen=k+1; else jogen=k-1; } return; } }