正常交换的时候我们需要用一个临时存储tmp: tmp = a; a = b; b = tmp
怎么原地存储呢?很简单的想法就是用一个差: a = a - b; b = a + b; a = -( a - b )
如果用位运算呢
所以就变成了
a = a ^ b
b = a ^ b
a = b ^ a
利用xor的思路想就很简单很简单
但是本质就是个智力游戏,没有实际用途。。。还不如用一个tmp来的有可读性
Good Good Study, Day Day Up
正常交换的时候我们需要用一个临时存储tmp: tmp = a; a = b; b = tmp
怎么原地存储呢?很简单的想法就是用一个差: a = a - b; b = a + b; a = -( a - b )
如果用位运算呢
所以就变成了
a = a ^ b
b = a ^ b
a = b ^ a
利用xor的思路想就很简单很简单
但是本质就是个智力游戏,没有实际用途。。。还不如用一个tmp来的有可读性