您的位置:首页 > 编程语言 > Java开发

java 二分法查找

2013-11-14 14:24 489 查看
/**
* 作者:
* 日期: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);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: