通常交換兩個整型變量,經常會如下做:
public void swap(int a, int b) {
??? int t = a;// 使用第三個變量t
??? a = b;
??? b = t;
}
下面介紹兩種不借助變量,讓兩個整型變量交換的方法
方法一:借助代數運算
public void swap(int a, int b) {
???? a = a + b;
???? b = a - b; // 這個時候a=a+b,b=a
???? a = a - b; // a = b
}
方法二:借助^異或運算
public void swap(int a, int b) {
???? a = a^b;
???? b = a^b;
???? a = a^b;
}