首页 > java基础 > 用异或操作符来交换二个的值

用异或操作符来交换二个的值

2008年10月26日

非常常用的一个算法就是,a和b的交换,我们总是用到一个中间变量来进行交换。
其实可以用异或符来计算,这样就不会花销额外空间了,因为异或是可逆的。
比如a^b=c c^b=a 所以a可以通过可逆计算,算回来的。
a和b的交换:
a = a^b
b = b^a 此时的b就相当于被异或回来的a
a = a^b 这里的思路要转一转,我们可以想成,相当于是 a = (a^b)^a = (b^a)^a = b(注意!这里的a和b都是原始的)

java基础 ,

  1. 目前还没有任何评论.
  1. 目前还没有任何 trackbacks 和 pingbacks.