Java算法 - 交换两个int变量的值

1、借助中间量交换 (so easy)

int x = 2; 
int y = 5; 
int temp = x; 
x = y; 
y = temp; 
 

2、位移运算交换(一个数对另外一个数执行异或操作两次,还是原来的数

int x = 10; 
int y = 20; 
x = x ^ y; 
y = x ^ y; 
x = x ^ y;

x = x ^ y;  此时x的值为x ^ y;
y = x ^ y;  此时的x经上面的运算变成x ^ y,所以y =  x ^ y ^ y = x;
x = x ^ y;  此时的y经上面的运算变成 x,所以x =  x ^ y ^ x = y; 实现两个数的互换 

3、数值相加减交换(如果 x 和 y 的数值过大的话,超出 int 的值会损失精度

int x = 2; 
int y = 5; 
x = x + y; //x = 7
y = x - y;  //y = 7 - 5 = 2
x = x - y;  //x = 7 - 2 = 5
 

猜你喜欢

转载自my.oschina.net/u/3733854/blog/1580106