/*-------------------------------------- 探索(2)二分探索(バイナリサーチ) --------------------------------------- */ import java.util.*; public class Search02_binary { static int youso=10; static int[] su={6,9,19,33,45,49,55,65,70,98}; static int kazu,flg; // ----------------- mainメソッド -------------------- public static void main(String[] args) { num_display(); // 表示処理にジャンプ Scanner sc=new Scanner(System.in); System.out.print("\n\n探したい値を入れて下さい-->"); kazu=sc.nextInt(); flg=0; binary_search(); // 探索処理にジャンプ if (flg==1) System.out.print("\n見つかりました\n"); else System.out.print("\n見つかりませんでした\n"); } // ----------------- 表示処理 num_display -------------------- static void num_display() { System.out.print(youso+"個の数字を表示します"); System.out.print(" (二分探索 BinarySearch)\n"); for ( int i=0 ; i<=youso-1 ; i++ ) { System.out.print(su[i]+" "); } return; } // ----------------- 探索処理 binary_search ----------------- static void binary_search() { System.out.print("\n----- Search start -----\n"); int ue,sita,k; sita=0; ue=youso-1; while ( !(flg==1 || sita>ue) ) { k=(sita+ue)/2; if ( kazu==su[k] ) flg=1; else if ( kazu>su[k] ) sita=k+1; else ue=k-1; } return; } }