我的漫漫程序之旅

          專注于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 | 大使
          主站蜘蛛池模板: 土默特左旗| 城固县| 甘孜县| 永善县| 布拖县| 阿拉善右旗| 蓝田县| 牙克石市| 安塞县| 阿图什市| 晋城| 乌审旗| 芦溪县| 金山区| 朝阳县| 内丘县| 金沙县| 夹江县| 衢州市| 河北区| 宣威市| 奉新县| 根河市| 自治县| 临沭县| 泌阳县| 清水河县| 锦屏县| 逊克县| 金昌市| 仙游县| 牟定县| 襄垣县| 泗洪县| 从江县| 禄丰县| 斗六市| 凉城县| 深州市| 松阳县| 泗阳县|