package lianxi;
import java.util.*;
public class Erfenchazhao {
// 网上查到的方法
public static int halfSearch(int a[], int x) {
int mid, left, right;
left = 0;
right = a.length - 1;
mid = (left + right) / 2;
while (a[mid] != x)
{
if(a[left]>x||x>a[right])
{
System.out.println("你输入的数字不在数组中");
System.exit(0);
}
if (x > a[mid])
{
left = mid + 1;
}
else if (x < a[mid])
{
right = mid - 1;
}
mid=(left+right)/2;
}
return mid;
}
public static void main(String[] args) {
//输入要查找的对象
Scanner shu=new Scanner(System.in);
System.out.println("请输入一个整数:");
int i=shu.nextInt();
//查看一下输入的数字
System.out.println("您输入的数值是"+i);
//创建数组 并查看数组元素
//二分查找法需要按大小排好,这里直接按从小到大排列,不用排序
int ary[]={2,4,6,8,10,12,14,16,18,20};
for (int j = 0; j < 10; j++)
{
System.out.println("ary["+j+"]="+ary[j]);
}
int s = halfSearch(ary, i);
System.out.println(i + "在数组中是 ary["+s+"] =" + ary[s]);
}
}
![]()
![]()
![]()
![]()