启天论坛软件硬件技术Java技术 → 两个变量交换的三种方法


  共有230人关注过本帖树形打印

主题:两个变量交换的三种方法

帅哥,在线噢!
junsan
  1楼 个性首页 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 总掌门
等级:管理员 帖子:11764 积分:7955 威望:757 精华:24 注册:2005-7-14 15:13:00
两个变量交换的三种方法  发帖心情 Post By:2008-10-7 14:28:00



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

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:test567568.zip



主页:http://www.rsky.com.cn

培训论坛:http://www.javastar.org

Blog:http://blog.csdn.net/junnef

技术交流QQ:334620162

培训咨询QQ:66883074

合租咨询QQ:631066985

MSN:junsanjin@hotmail.com

Emial:junsanjin@263.net

传真:(010)950507转747393
启天合组-10人 15人 20人 多人合租空间 支持(0中立(0反对(0回到顶部