1.循序查找。
这种方法不要求数组是有序数列,按照一个一个数的查询来查找,比较接近人的大脑思考,但效率太低,在此不去介绍
比较内容可使用equals方法
2.二分法。
重点介绍,使用迭代方法
class BinaryFind{
public void find(int leftIndex,int rightIndex,int val,int arr[])
{//左端下标和右端下标
//val为要查找的数,找出他的下标
int midIndex=(leftIndex+rightIndex)/2;//中间下标
int midVal=arr[midIndex];中间值
if(leftIndex<=rightIndex)
{//递归的使用,递归的条件
if(val>midVal)
{val大于中间值的话,我们要在中间值右端查找
find(midIndex+1,rightIndex,val,arr);
}
else if(val<midVal)
{val小于中间值的话,我们要在中间值左端查找
find(leftIndex,midIndex-1,val,arr);
}
else if(val==midVal)
{//找到此值,并且不用再递归了,可以一步一步地返回函数
System.out.println("找到的数下标是"+midIndex);
}
}
else
{//查不到此数,
System.out.println("不存在这个数");
}
}
}
如果你觉得有帮助,请给我一个赞(在左上角)