二分搜索技术

 
 
public class TwoSearch {
	public int binarySearch(int[] a,int x,int n) {
    	int left = 0;
    	int right = n-1;
    	while(left<=right) {
    		int middle = (left+right)/2;
    	     if(x==a[middle])return middle+1;   //找到输出位置(第几个数)
    	     if(x>a[middle])left=middle+1;
    	     else
    	    	 right = middle - 1;
    	}
		return -1;  //没有找到时输出-1
    }
    public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入数字的个数:");
		int n = input.nextInt();
		int[] a = new int[n];
		System.out.println("清输入数字:");
		for(int i = 0;i<n;i++) {
			a[i] = input.nextInt();
		}
		System.out.println("清输入要找的数字:");
		int x = input.nextInt();
		TwoSearch y = new TwoSearch();
		System.out.println(y.binarySearch(a,x,n));
		input.close();
	}
} 


猜你喜欢

转载自blog.csdn.net/zxl1148377834/article/details/80385673
今日推荐