java面试题——基础算法入门06《折半查找》

public class Binary {
    @Test
    public void testInsertSort() {
        int []a= {4,6,8,10,14};
        System.out.println("输出你要查找的数:");
        int num=new Scanner(System.in ).nextInt();
        System.out.println(BinarySearch(a,num)) ;
 
 }
    public int BinarySearch(int [] a,int x) {
        int left=0,right=a.length-1,mid;
        while(left<=right) {//left>right就没法形成闭区间了
            mid=(left+right)/2;//取中间点
            if(a[mid]==x)return mid;
            else if(a[mid]>x)//中间数大于x
                right=mid-1;//往左子区间[left,mid-1]
            else
                left=mid+1;//往左子区间[mid+1,right]
        }
        return -1;
    }
}

猜你喜欢

转载自blog.csdn.net/ZSS1753936255/article/details/81709373