二分查找中mid值的计算方法
2024-09-08 19:25:29
在刷题的时候遇到许多二分查找的题目
发现很多大佬的题解中mid值得计算都是用的:mid = low + (high-low)/ 2;
为什么不用mid = (low+high)/ 2的计算方法呢?
int类型是一种数据类型,用于定义整数类型变量的标识符,是带符号整数。
在现在对计算机中,int
占用 4 字节,32 比特,数据范围为:-2147483648 ~ 2147483647 [-2^31 ~ 2^31-1]
。
那么对于两个都接近 2147483647
的数字而言,它们相加的结果将会溢出,变成负数。
所以,为了避免溢出情况的发生,
我们不能使用 mid = (left + right) / 2
来计算 mid
值,
而是使用 mid = left + (right - left) / 2
来作为替代。
最新文章
- 受限玻尔兹曼机(RBM)学习笔记(二)网络结构
- Leetcode: Max Sum of Rectangle No Larger Than K
- Andriod项目开发实战(2)——JSON和XML的区别
- ORACLE和SQL SERVER的数据同步常用方法
- 为什么同时需要IP地址和MAC地址
- C语言-cout<;<;";123";<;<;";45";<;<;endl;
- Linux学习——shell编程之正则表达式和字符处理命令
- 【NOIP模拟】LCS及方案数(DP)
- ●UOJ 34 多项式乘法
- 通用权限管理系统之权限菜单zTree树的展示及移动的处理方法
- cmd切换代码页,切换字体,cmd不能输入中文
- LINUX第三次实践:程序破解
- mongoose与express
- dpdk中文文档
- bzoj千题计划184:bzoj1261: [SCOI2006]zh_tree
- 如何利用 jQuery 修改 css 中带有 !important 的样式属性?
- WEB前端开发规范文档[转]
- 【LeetCode】150. Evaluate Reverse Polish Notation
- iOS开发总结-Xcode常见错误
- js之瀑布流的实现