我们知道,交换数组中的元素在很多情况下都会用到,一般的方式如下:
int temp = a;
a = b;
b = temp;
然而,如果要在不引入第三个中间变量的情况下实现交换,要怎么做呢?
可以用先加后减或者位运算的方式完成数字的交换。
先加后减:
b = b + a;
a = b - a;
b = b - a;
位运算:
a = a ^ b;
b = b ^ a;
a = a ^ b;
我们知道,交换数组中的元素在很多情况下都会用到,一般的方式如下:
int temp = a;
a = b;
b = temp;
然而,如果要在不引入第三个中间变量的情况下实现交换,要怎么做呢?
可以用先加后减或者位运算的方式完成数字的交换。
先加后减:
b = b + a;
a = b - a;
b = b - a;
位运算:
a = a ^ b;
b = b ^ a;
a = a ^ b;