• 二分查找中mid值的计算方法


    在刷题的时候遇到许多二分查找的题目

    发现很多大佬的题解中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 来作为替代。

  • 相关阅读:
    算法第二章上机实践报告
    算法第一章作业
    第7章学习小结 不使用STL-map过实践题:QQ帐户的申请与登陆
    第6章学习小结
    HDU
    HDU 2089 不要62(数位DP)
    char-2
    chart-7
    chart-6
    char-8
  • 原文地址:https://www.cnblogs.com/xjtsh/p/12614374.html
Copyright © 2020-2023  润新知