A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yeluoxingye 中级黑马   /  2017-2-28 23:40  /  396 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Demo2_Array {
/**二分查找
  *
  */
public static void main(String[] args) {
  int[] arr = {11,22,33,44,55,66,77,88};
  int i = -100;
  System.out.println(getIndex(arr,i));
}

//这个是我自己写的
public static int getIndex(int[] arr,int value) {
  int min = 0;
  int max = arr.length - 1;
  for(;;) {
   int mid = (min + max) / 2;
   
   if(value < arr[mid]) {
    max = mid - 1;
   }else if(value == arr[mid]) {
    return mid;
   }else if(value > arr[mid]) {
    min = mid + 1;
   }
   
   if(max < min) {
    return -1;
   }
   
  }
}
//这是老师写的
public static int getIndexTeach(int[] arr,int value) {
  int max = arr.length - 1;
  int min = 0;
  int mid = (min + max) / 2;
  
  while(value != arr[mid]) {
   if(value > arr[mid]) {
    min = mid + 1;
   }else if(value < arr[mid]) {
    max = mid - 1;
   }
   mid = (min + max) / 2;
   
   if(max < min) {
    return -1;
   }
  }
  return mid;
}
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马