【转载】两个变量交换的三种方法
在我们写程序的时候,经常会遇到两个变量A与B交换的操作,通常大家会借助第三个变量来实现:[*]第一种方法利用第三个变量:
如:C=A;A=B;B=C;
[*]第二种方法是利用加减法实现两个变量的交换:
如:A=A+B;B=A-B;A=A-B;
[*]第三种方法是得用位异或运算来实现,也是效率最高的一种,在大量数据交换的时候,效率明显优于前两种方法,
如:A=A^B;B=A^B;A=A^B;
原理:利用一个数异或本身等于0和异或运算符合交换率。
public class Test{ public static void main(String args[]){ int A=2; int B=3; int C; System.out.println("A="+A); System.out.println("B="+B); System.out.println("method 1"); C=A; A=B; B=C; System.out.println("A="+A); System.out.println("B="+B); System.out.println("method 2"); A=A+B;B=A-B;A=A-B; System.out.println("A="+A); System.out.println("B="+B); System.out.println("method 3"); A=A^B;B=A^B;A=A^B; System.out.println("A="+A); System.out.println("B="+B); }}
页:
[1]