欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

折半查找

程序员文章站 2022-06-28 20:10:22
public class A{ public static void main(String[] args){ int[] nums={-1,1,3,19,55,66}; //降序 66 55 19 3 1 -1 int num=66; int index=A.getIndex(nums,num); ......
public class a{
 
    public static void main(string[] args){
 
        int[] nums={-1,1,3,19,55,66};  //降序  66 55  19  3  1  -1
 
        int num=66;
 
        int index=a.getindex(nums,num);
 
        system.out.println(index);
 
    }
 

 
    //算法复杂度极高  遍历  n/2的数据取查找   折半查找 log2n
 
    public static int getindex(int[] arr,int num){
 
        int min=0;
 
        int max=arr.length-1;
 
        while(min <=max){
 
            int mid=(min+max)/2;
 
            if(num == arr[mid]){
 
                return mid;
 
            }else if(num < arr[mid]){
 
                max=mid-1;
 
            }else{
 
                min=mid+1;
 
            }
 
        }
 
        return -1;
 
    }
 

 
}