public class hafumanSelect {
public static void main(String[] args) {
int [] arr = {1,3,5,7,9,11};
int index = hafuman(arr,6);
System.out.println(index);
}
/*折半查找:
* 定义三个指针 min max mid
* 参数:数组,被找的元素
* 写出循环,
* 条件:min <= max;
* mid = (min + max )/2
* 让被找的元素中间索引作比较
* 若 被找元素 < 中间索引,
* 大指针 = 中间索引 - 1
* 若 被找元素 > 中间索引
* 小指针 = 中间索引 + 1
*
*
* */
public static int hafuman (int [] arr,int key){
int min = 0;
int max = arr.length - 1;
int mid = 0;
while(min <= max){
mid = (min + max)/2;
if(key < arr[mid]){
max = mid - 1;
}else if(key > arr[mid]){
min = mid + 1;
}else{
return mid;
}
}
return -1 ;
}
}