第一種方法,大家會借助第三個變量來實現:
如:tmp=A;A=B;B=tmp;
這種方法需要借助第三變量來實現;
第二種方法是利用加減法實現兩個變量的交換,
如:A=A+B;B=A-B;A=A-B;
但是 如果 A+B 超出 A的返回 ,就會出錯!極為不推薦 此方法
第三種方法是得用位異或運算來實現,也是效率最高的一種,在大量數據交換的時候,效率明顯優於前兩種方法,
如:A=A^B;B=A^B;A=A^B;
原理:利用一個數異或本身等於0和異或運算符合交換率。
異或的意思就是:不同 才可以得1,否則為0
// 異或
// 0^0=0
// 1^1=0
// 1^0=1
// 0^1=1
假如 a = 3,b = 4。想將a和b的值互換,可以用一下賦值語句實現:
a = a ^ b;
b = b ^ a;
a = a ^ b;
此方法 完美,推薦使用。
http://www.blogjava.net/landon/archive/2010/03/12/315301.html