JAVA--二分查找

1、查找

在java中,我们常用的查找有两种:顺序查找、二分查找,下面主要介绍一下二分查找;

2、二分查找的主要思想:首先查找的数组是一个有序数组,然后每次取数组的中间的值与要查找的数比较,如果比较的数大于(小于)中间的数,则在把中间数的右边(左边)剩下的数组作为一个数组来重复上次的操作,直到查到想要的数。

JAVA代码如下:

/*
 * 功能:二分法的实现
 * 作者:zyj0813
 * 说明:使用二分法之前是默认数组是按照从小到大的顺序排列的,在实际运用中,我们需要先排好数组的顺序在使用二分法
 */
package com.binary;
public class Demo2 {
public static void main(String[] args) {
int[] arr={1,2,3,4,5};
BinaryFind bf=new BinaryFind();
bf.find(0, arr.length-1, 4, arr);
}
}
//创建二分法类
class BinaryFind{
public void find(int leftIndex,int rightIndex,int val,int[] arr)
{
int midIndex=(leftIndex+rightIndex)/2;  //求出中间值的脚标
int midVal=arr[midIndex];//求出中间值
if(leftIndex<=rightIndex)//判断条件,避免递归死循环
{
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);//打印结果
} 
}
}
}



猜你喜欢

转载自blog.csdn.net/zyj0813/article/details/78301185