java二分法

public static void main(String[] args) {
  int[] arr = {1,2,3,4,5,6,7,8,9,12,13,14,15,16};
  System.out.println(search(arr, 14));
}
public static int search(int[] arr, int key) {
  int start = 0;
  int end = arr.length - 1;
  while (start <= end) {
    int middle = (start + end) / 2;
    if (key < arr[middle]) {
      end = middle - 1;
    } else if (key > arr[middle]) {
      start = middle + 1;
    } else {
      return middle;
    }
  }
  return -1;
}

posted @ 2017-08-08 15:57  一起喝茶去  阅读(109)  评论(0)    收藏  举报