查找--二分算法

public class HellowWorld {
public static void main(String[] argv ) {
int[] arr= new int[]{1,3,6,9,13,16,21,26,30,35};
int num=30;//要查找的值
int low=0;//最左边的下标值
int high=arr.length-1;//最右边的下标值
int mid=(low+high)/2;
while(arr[mid]!=num&&low!=high)
{
    //arr[mid]<num 代表要找的值在中间的右边
    if(arr[mid]<num )
    {
        low=mid+1;
    }
    //arr[mid]>num 代表要找的值在中间的左边
    else if(arr[mid]<num )
    {
        high=mid-1;
    }
    mid=(low+high)/2; //重新计算中间值
}
 if(low==high)
 {
     System.out.println("没有这个值");
 }
 else
 {
     System.out.println("下标是:"+mid);
 }
}//endmain
}//endclass

红色的是重点 二分需要是有序的数组

猜你喜欢

转载自www.cnblogs.com/xuwangqi/p/11031866.html