两个变量交换的三种方法

在我们写程序的时候,经常会遇到两个变量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);
 }
}

你可能感兴趣的:(C++,c,C#,Blog)