Java实现快速查找(又名二分查找)

Java中的快速查找

条件:快速查找只能在有序数组中使用

快速查找的原理:

通过输入的数和中间的数进行对比大小确定要查找的数的范围,最后将范围缩小到1和要查找的数进行对比找到了输出下标,找不到输出“找不到”。。

代码实现

public class RecursionSeek {
          
   
    public static void main(String[] args) {
          
   
        int []arr  ={
          
   1,2,3,4,5,6,7,8,9,10};
        int X = -1;
        search(arr,X);
        search1(arr,0,arr.length-1,X);
    }
//递归方法查找
    private static void search1(int []arr,int start,int end,int X) {
          
   
        int mid =(start+end)/2;
        if (X==arr[mid]){
          
   
            System.out.println("找到了下标是:"+mid);
            return;
        }else if(X>arr[mid]){
          
   
            start = mid+1;
        }else {
          
   
            end = mid-1;
        }
        if(start<=end)
        search1(arr,start,end,X);
        else
            System.out.println("找不到");
    }
//循环方法查找
    private static void search(int []arr,int X) {
          
   
        int start =0,end = arr.length-1,mid = (start+end)/2;
        while(start<=end){
          
   
            if(X==arr[mid]){
          
   
                System.out.println("找到了,下标是:"+mid);
                return;
            }else if(X>arr[mid]){
          
   //在右边
                start = mid+1;

            }else {
          
   
                end = mid-1;
            }
            mid = (start+end)/2;
        }
        System.out.println("找不到");

    }


}

没十遍练习那是根~~~本学部会的

经验分享 程序员 微信小程序 职场和发展