我们常用的交换两个整数就是设置一个中间变量,但是还有一种方法,就是使用异或
if (array[j] > array[j + 1]) {
array[j + 1] ^= array[j];
array[j] ^= array[j + 1];
array[j + 1] ^= array[j];
}```
证明如下:
a=a^b
b=a^b //因为我们上面写了a=a^b,所以这里的b=a^b=(a^b)^b=a^(b^b)=a^0=a
a=b^a //因为上面b已经是a了,所以结合第一步就有a=b^a=a^(a^b)=(a^a)^b=0^b=b