交换两个整数的骚操作,你知道吗?

    科技2023-10-21  85

    我们常用的交换两个整数就是设置一个中间变量,但是还有一种方法,就是使用异或

    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
    Processed: 0.023, SQL: 9