/*********************************************** 探索(2)二分探索 Binary_Search ***********************************************/ 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) { Scanner sc=new Scanner(System.in); num_display(); 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 k,jogen,kagen; kagen=0; jogen=youso-1; while( !( flg==1 || kagen>jogen ) ) { k=(kagen+jogen)/2; if ( kazu==su[k] ) flg=1; else if ( kazu>su[k] ) kagen=k+1; else jogen=k-1; } return; } }