/*
*
* 功能:二分查找
*/
package com.haitao.array;
public class Demo5_7 {
public static void main(String[] args) {
int arr[]={2,5,7,12,25,30,40,55,60,65,70};
BinaryFind bf=new BinaryFind();
bf.find(0, arr.length-1,70,arr);
}
}
//二分查找
class BinaryFind
{
public void find(int leftIndex,int rightIndex,int val,int arr[])
{
//首先找到中间的下标
int midIndex=(rightIndex+leftIndex)/2;
int midVal=arr[midIndex];
if(rightIndex>=leftIndex)
{
//如果要找的数比midVal小
if(val<midVal)
{
//在arr左边数中找,递归
find(leftIndex,midIndex-1,val,arr);
}
else if(val>midVal)
{
//在arr右边数中找,递归
find(midIndex+1,rightIndex,val,arr);
}
else if(midVal==val)
{
System.out.println("找到下标"+midIndex);
}
}
System.out.println("找不到要查询的数!");
}
}
java二分查找
最新推荐文章于 2023-08-14 23:02:22 发布