【算法】常用小技巧

94 阅读1分钟

1、交换两个数字变量,而不借助于第三个变量

int a = 123;
int b = 456;

方式一

a = a ^ b;
b = a ^ b;
a = a ^ b;

方式二

a = a + b - (a = b);
b = a  + (a=b) * 0;

2、求两个值的平均值

int a = 100;
int b = 200;

求a到b的平均值

常规做法

int avg = (a + b) / 2;
int avg = a + (a - b) / 2;
int avg = a + (a - b) >> 1;