lewis_q 发表于 2013-1-27 05:32:11

【转载】两个变量交换的三种方法

在我们写程序的时候,经常会遇到两个变量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]
查看完整版本: 【转载】两个变量交换的三种方法