BinarySearch

1558 ワード

package BinarySearch;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;


public class BinarySearch {
	public static void main(String[] args) {
		Scanner scanner = null;
		try {
			scanner = new Scanner(new File("./binarysearch.txt"));  
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		String[] inputString = scanner.next().split(",");
		int element = Integer.parseInt(scanner.next());
		  // 
		int array[] = new int[inputString.length];
		for(int i=0;i<inputString.length;i++){
			array[i] = Integer.parseInt(inputString[i]);
		}
		int flag = binarySearch(array,element);
		//System.out.println("flag:"+flag);
		if(flag != 0){
			System.out.println("Find it : array["+flag+"]");
		}
		if(flag == 0){
			System.out.println("Can not find it");
		}
	}
	
	private static int binarySearch(int array[], int x){
		int low = 1; 
		int high = array.length;
		int middle = (low + high)/2;
		while(low<=high){
			if(x == array[middle]){
				return middle;
			}
			else if(x<array[middle]){
				high = middle -1;
				middle = (low + high)/2;
			}
			else if(x>array[middle]){
				low = middle + 1;
				middle = (low + high)/2;
			}
		}
		return 0;	
	}

}