博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bsearch的溢出问题
阅读量:6275 次
发布时间:2019-06-22

本文共 513 字,大约阅读时间需要 1 分钟。

在java中为了避免 low+high溢出,可以用无符号右移:正数高位补0,负数高位补1

int mid = (low + high) >>> 1;


如果是在c++中,那么需要先转换为unsigned的再移位

int a=100;

int b;
b=((unsigned int)a)>>1;

或者 int mid = low + ((high - low) / 2);

 

public static int binarySearch(int[] a, int target) { int low = 0; int high = a.length - 1;   while (low <= high) {     int mid = (low + high) >>> 1;     int midVal = a[mid];     if (midVal < target)         low = mid + 1;     else if (midVal > target)         high = mid - 1;     else         return mid;   }   return -1; }

  

转载地址:http://uiyva.baihongyu.com/

你可能感兴趣的文章
Nginx负载均衡器处理Session共享的几种方法(转)
查看>>
转 MySQL问题排查工具介绍
查看>>
Linux、apache 无法使用PHP创建目录和文件
查看>>
hi模板文件报乱码问题
查看>>
Java 远程通讯技术及原理分析
查看>>
ORM框架之------Dapper,Net下无敌的ORM
查看>>
R语言绘图时的边界碰撞问题
查看>>
深度可分离卷积结构(depthwise separable convolution)计算复杂度分析
查看>>
IntelliJ IDEA 常用设置讲解
查看>>
软件的描述x
查看>>
深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然...
查看>>
spring boot微服务改造冲突
查看>>
OAuth2 Demo PHP
查看>>
真机测试出现INSTALL_FAILED_USER_RESTRICTED安装错误
查看>>
Mybateis mapper 接口 example 用法
查看>>
js图片转base64并压缩
查看>>
关于server和虚拟主机的差别
查看>>
散列表(二)冲突处理的方法之链地址法的实现: 哈希查找
查看>>
【ztree】zTree节点增删改
查看>>
安装用于跨平台移动开发的 Visual C++
查看>>