更安全的求中间值
1. 数组 arr,起始位置是 L, 终点位置 R
常规写法
int mid = (L + R) / 2;
更安全的写法
int mid = L + ((R - L) >> 1)
2. 如何获得数据的长度
new int[R - L + 1]
3. 步长乘二的安全方式
不安全,可能溢出,因为 int 的最大值是 2的31 - 1
当step等于2的30次方时,*2等于 2的 31次方了 会溢出
安全
step *= 2
if(step >= (N >> 2)){
break;
}else{
step *=2;
}

浙公网安备 33010602011771号