二分查找
/** * * @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); } } } }