package com.bdqn.yingyun; |
public class ZheBan { |
public static void main(String[] args) { |
// 数组必须是有序的数组,且数字不能重复 |
int [] arr = { 1 , 4 , 5 , 25 , 35 , 33 , 76 }; |
int index = halfindex(arr, 8 ); |
System.out.println( "index=" + index); |
} |
//比较好用些 |
public static int halfindex( int [] arr, int key) { |
int min, mid, max; |
min = 0 ; |
max = arr.length - 1 ; |
while (min <= max) { |
mid = (min + max) / 2 ; |
if (key > arr[mid]) |
min = mid + 1 ; |
else if (key < arr[mid]) |
max = mid - 1 ; |
else |
return mid; |
} |
return - 1 ; |
} |
/* public static int halfindex_2(int[] arr, int key) { |
int min, mid, max; |
min = 0; |
max = arr.length - 1; |
mid = (min + max) / 2; |
while (arr[mid] != key) { |
if (key > arr[mid]) |
min = mid + 1; |
else if (key < arr[mid]) |
max = mid - 1; |
if (max < min) |
return -1; |
mid = (min + max) / 2; |
|
} |
return mid; |
}*/ |
} |