public class Finding {
public static void main(String[] args) {
//在查找前必須先排序,給定數組arr必須有序
int arr[]={-25,-22,-15,-8,0,15,28,76,80,87,99};
//建立一個BinaryFind類
BinaryFind bf=new BinaryFind();
bf.find(0,arr.length-1,99,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)
{
if(midVal<val)
find(midIndex+1,rightIndex,val,arr);
else if(midVal>val)
find(leftIndex,midIndex-1,val,arr);
else if(midVal==val)
System.out.println("index"+midIndex+"為所求");
}
else
System.out.println("無法找到"+val);
}
}
二分查找法
最新推荐文章于 2018-05-02 11:52:55 发布