赞
踩
- 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);
- }
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。