
代码实现
import java.util.Arrays;
import java.util.Scanner;
public class HalfLookup {
public static void main(String[] args) {
//创建扫描器对象
Scanner sc = new Scanner(System.in);
//声明int数组,空间为10
int[] array = new int[10];
//分别接受数组下标首部,中间位,尾部
int left = 0,mid = 0,right = array.length-1;
//接收下标
int index = -1;
//输入数据放入数组中
System.out.printf("请依次输入%d个数据->->->\n",10);
for(int i = 0;i < array.length; i++){
System.out.printf("请输入第%d个数据:",i+1);
array[i] = sc.nextInt();
}
//将数组顺序排序才好二分查找
Arrays.sort(array);
//输出数组
System.out.println("\n数组中数据如下->->->");
for(int i = 0;i < array.length; i++){
System.out.print(array[i]+"\t");
}
//数组.二分查找
System.out.println("\n请输入需要查找的值:");
int result = sc.nextInt();
while(left <= right){
mid = (left + right)/2;
if(result < array[mid]){
right = mid - 1;
}
else {
if (result > array[mid]) {
left = mid + 1;
} else {
index = mid;
break;
}
}
}
if(index >= 0){
System.out.printf("该%d在数组中的第%d个,索引值为array[%d]\n",result,index+1,index);
}
else{
System.out.printf("很遗憾!%d不在该数组中!",result);
}
}
}