对于数组中取下标中值操作int mid=(left+right)/2的讨论

发布时间 2023-09-14 23:53:19作者: 唤明

分两种情况

    1.left和right之间(含left和right元素)共有奇数个,此时中轴线穿过正中间的元素

      判断方法:right-left的值为偶数,即(right-left)%2=0。

      此时(left+right)/2恰为整数,此结果恰为left与right下标之间的中值下标,正好在中轴线上

    2.left和right之间(含left和right元素)共有奇数个,此时中轴线穿过正中间的两个元素中间的空隙。

      判断方法:right-left的值为奇数,即(right-left)%2=1。

      此时(left+right)/2恰为小数,经过int类型的截断后,此结果正为在中轴线左侧的那一个元素对应的下标