思路:1.定义一个方法,再在main()方法里传入数组和自己想要查找的数。
2.二分法适用于有序表,首先将给的target与中间位置比较,相等则查找成功,不相等则在前半段或后半段。大于中间位置数在后半段,小于在前半段。缩小范围继续查找,直到找到为止,循环完毕还没有找到返回负一。
代码
public class BinarySearch {
public static void main(String args[]) {
int[] a = {2, 3, 8, 9, 12, 23, 80};
int s= BinarySearch(a,8);
System.out.println(s);
}
public static int BinarySearch(int[] a,int target) {
int left = 0;
int right = a.length-1;
while (right >= left) {
int mid = left + (right - left) / 2;
if (a[mid] == target) {
return mid;
} else if (a[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
}
}