/**
* 作者:
* 日期:2013-11-14
* 功能:二分法查找
*/
package com.cf;
public class Demo5 {
public static void main(String[] args) {
int arr[] = {1,2,3,4,5,7,9};
BinaryFind bf = new BinaryFind();
bf.find(0, arr.length-1, 1, 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){
//如果要找的数比中间的数小,则从左边找
if(midVal>val){
find(leftIndex,midIndex-1,val,arr);
}else if(midVal<val){
//如果找的数比中间的数大,则从右边找
find(midIndex+1,rightIndex,val,arr);
}else if(midVal==val){
System.out.println("找到下标:"+midIndex);
}
}
}
}
java 二分法查找
最新推荐文章于 2025-05-01 16:14:06 发布