实现原理
- 又叫折半查找,要求待查找的序列有序
- 每次取中间的值与待查关键字进行比较,向左右循环查找。
public void erFen(){
// 定义数组 要求有序
int[] ints = {1, 2, 3, 4, 5, 6, 7, 8};
// 带查找元素
int n =2;
int l = 0; //第一个元素位置
int r = ints.length-1; //最后一个元素位置
int mid;
while (l <= r){
// 取中间位置的值
mid = (l+r)/2;
if ( n == ints[mid]){
System.out.println("元素索引为:"+mid);
break;
}else if (n < ints[mid]){
// 向左查找
r = mid - 1;
}else {
// 向右查找
l = mid + 1;
}
}
}