我的漫漫程序之旅

          專注于JavaWeb開發
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
          數據加載中……

          兩個變量交換的三種方法

          在我們寫程序的時候,經常會遇到兩個變量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和異或運算符合交換率。

          希望對大家有幫助!

           

          package test;

          public class VarTest
          {
              
          public static void main(String[] args)
              
          {
                  
          int a = 3;
                  
          int b = 2;
                  
          int c;
                  c 
          = a;
                  a 
          = b;
                  b 
          = c;
                  System.out.println(
          "a:" + a);
                  System.out.println(
          "b:" + b);
                  System.out.println(
          "**********");
                  a 
          = a + b;
                  b 
          = a - b;
                  a 
          = a - b;
                  System.out.println(
          "a:" + a);
                  System.out.println(
          "b:" + b);
                  System.out.println(
          "************");
                  a  
          = a ^ b;
                  b 
          = a ^ b;
                  a 
          = a ^ b;
                  System.out.println(
          "a:" + a);
                  System.out.println(
          "b:" + b);
              }


          }

           

           



          posted on 2008-01-29 13:01 々上善若水々 閱讀(7964) 評論(1)  編輯  收藏 所屬分類: J2SE

          評論

          # re: 兩個變量交換的三種方法  回復  更多評論   

          不知道
          2009-06-15 19:57 | 大使
          主站蜘蛛池模板: 巴林左旗| 家居| 探索| 永寿县| 平谷区| 仙桃市| 吉林省| 洞口县| 班玛县| 故城县| 桦南县| 庆元县| 安化县| 沙雅县| 墨脱县| 吴堡县| 威远县| 百色市| 罗田县| 阿图什市| 江都市| 仙游县| 桦南县| 华阴市| 孝感市| 盐城市| 双江| 汨罗市| 岢岚县| 梓潼县| 芮城县| 灵川县| 镶黄旗| 织金县| 澎湖县| 来安县| 枣阳市| 宁乡县| 姚安县| 凤山县| 广东省|