markdown
#說明
二元搜尋法,是將資料分成兩半,由中間開始搜尋,並且比較大小,太小往大的那邊搜尋、太大往小的那邊搜尋。
#操作流程
##Code
```
import java.io.*;
class Searcher{
 int [] data;
 int item;
 int search(int[] data,int item)
 {
  this.data=data;
  this.item=item;
  return BSearch(0,data.length-1);
  //test
  }
 
 int BSearch(int low ,int high){
   if (low> high) {
    return -1;
    }
   
 int middle=(low + high)/2 ;
 
 if (item ==data[middle]) {
  return middle;
  }
 else if (item>data[middle]) {
  return BSearch(middle+1,high);
  }
 else {
  return BSearch(low,middle-1);
  }
 }
}
public class BSearch {
 public static void main(String[] argv)throws IOException {
  Searcher a= new Searcher();
  System.out.print("please input what you want to find\n->");
  BufferedReader br =new 
    BufferedReader(new InputStreamReader(System.in));
  int target =java.lang.Integer.parseInt(br.readLine());
  
  int i =a.search(new int []{3,5,7,8,10,34,56},target);
  if (i==-1) {
   System.out.println("Didn't find it"+target);
  
  }
  else {
   System.out.println("in the "+ i +" location find target "+ target );
  }
 }
}
```
##Demo
- Code

留言
張貼留言