交换两个变量的值
两个变量值互换是基本的算法,在排序等算法中应用
法一:
已知:
int a = 100;
int b = 10;
交换两个变量值,使得a = 10,b = 100
错误代码:
a = b;
b = a;
正确代码:
int c = a;
a = b;
b = c;
法二:
不借助第三个变量,仅在两个变量之间交换值。
(弊端:如果a、b的值过大到超过int的最大值,会损失精度)
a = a + b;
b = a - b;
a = a - b;
法三:
不会有超出int的范围,从而损失精度的危险(其中^是位异或运算)
a = a ^ b;
b = a ^ b;
a = a ^ b;
利用的思想原理是:一个数异或同一个数两次,结果还是那个数。
我偏要勉强!