当前位置: 首页> 财经> 产业 > 算法基础-二分查找

算法基础-二分查找

时间:2025/7/8 12:07:50来源:https://blog.csdn.net/qq_65186476/article/details/142211984 浏览次数:0次

左闭右闭 [ left,right ]        [1,1]可以    

while( left <= right )        
        if( a[mid] > target )
                right = mid - 1
        else if( a[mid] < target )
                left = mid + 1


左闭右开 [ left,right )        [1,1)不可以

while( left < right )        
        if( a[mid] > target )        已经>target,开区间right = mid
                right = mid
        else if( a[mid] < target )
                left = mid + 1

public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();int m = in.nextInt();int l, r;int[] a = new int[n];for(int i = 0; i < n; i ++)a[i] = in.nextInt();while(m -- > 0) {int first = -1, last = -1;int x = in.nextInt();l = 0;r = n - 1;while(l <= r) {int mid = (l + r) / 2;if(a[mid] > x) {r = mid - 1;} else if(a[mid] < x) {l = mid + 1;} else {first = mid;r = mid - 1;}}l = 0;r = n - 1;while(l <= r) {int mid = (l + r) / 2;if(a[mid] > x) {r = mid - 1;} else if(a[mid] < x) {l = mid + 1;} else {last = mid;l = mid + 1;}}System.out.println(first + " " + last);}}
}

关键字:算法基础-二分查找

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: