/**
*
* @author Administrator
* 功能:二分查找
*/
package com.test1;
public class Demo5_4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[] = { 2, 5, 7, 12, 25 };
BinaryFind bf = new BinaryFind();
bf.find(0, arr.length-1, 12, arr);
}
}
class BinaryFind {
public void find(int leftIndex, int rightIndex, int val, int[] arr) {
// 首先找打中间的数
int midIndex = (leftIndex + rightIndex) / 2;
int midVal = arr[midIndex];
if (rightIndex >= leftIndex) {
// 如果要找的数比midVal大
if (midVal > val) {
// 在arr数组的左边数中找
find(leftIndex, midIndex - 1, val, arr);
} else if (midVal < val) {
// 在arr的右边的数去找
find(midIndex + 1, rightIndex, val, arr);
} else if (midVal == val) {
System.out.println("找到下标" + midIndex);
}
}
}
}