背景:结合之前的位运算,如何高效的交换两个数的值,特此总结
1 借助中间变量
public void swap(int a,int b){
int temp=a;
a=b;
b=temp;
}
2 不用中间变量-混合运算
public void swap(int a,int b){
a=a+b;
b=a-b;
a=a-b;
}
备注:其他运算原理和此类似,主要是采用运算和顺序赋值。
3 不用中间变量-异或操作
public void swap(int a,int b){
a=a^b;
b=a^b;
a=a^b;;
}
备注:两次异或同一个值等于没变