二分法查找
程序员文章站
2022-03-14 20:42:39
...
/**
*
* @ClassName: 二分法查找
* @Description: (查找的二分法)
* @author Administrator
* @date 2018年6月11日 下午2:45:56
*
*/
public class 二分法查找 {
public static void main(String[] args) {
//定义一个有序数组
int[] array = {1,2,3,4,5,6,7,8,9,10};
//打印二分法的返回值
System.out.println("下标的位置为:"+searchRecursive(array,0,array.length-1,9));
}
public static int searchRecursive(int[] array,int start,int end,int findValue){
if(array==null){
return -1;
}
if(start<=end){
//中间位置
int middle = (start + end)/2;
//中值
int middleValue = array[middle];
if(findValue == middleValue){
//与中值相等就直接返回
return middle;
}else if(findValue < middleValue){
//目标值小于中值,在中值前面找(这里调用了二分法的方法)
return searchRecursive(array,start,middle - 1,findValue);
}else {
//目标值大于中值,在中值后面找(这里调用了二分法的方法)
return searchRecursive(array,middle + 1,end,findValue);
}
}else{
//返回-1,查找失败
return -1;
}
}
这里要注意数组要是有序的
上一篇: php操作表单发送邮件的方法
下一篇: PHP加密解密函数生成加密解密字符串