查找-二分查找

图片:

文本:

二分查找:

非递归实现:

public static int binarySearch(int []arr,int target){

        int low=0;

        int hight=arr.length-1;

        int mid;

        while(low<=hight){

扫描二维码关注公众号,回复: 5473076 查看本文章

            mid=(low+hight)/2;

            if(arr[mid]==target){

                return mid+1;

            }else if(arr[mid]<target){

                low=mid+1;

            }else{

                hight=mid-1;

            }

        }

        return -1;

    }

递归实现:

public static int binarySearch(int []arr,int target,int low,int hight){

        if(low<=hight){

            int mid=(low+hight)/2;

            if(target==arr[mid]){

                return mid+1;

            }

            else if(target>arr[mid]){

                return binarySearch(arr,target,mid+1,hight);

            }else{

                return binarySearch(arr,target,low,mid-1);

            }

        }

        return -1;

}

猜你喜欢

转载自blog.csdn.net/weixin_42146769/article/details/88364650