黑马程序员技术交流社区

标题: 两个变量交换值 怎么高效实现 [打印本页]

作者: 开心的流泪者    时间: 2016-8-15 16:54
标题: 两个变量交换值 怎么高效实现
这是我的代码  你知道吗
class  Demo1
{
        public static void main(String[] args)
        {
                int a=2;
                int b=3;
                System.out.println("a="+a+";b="+b);
                a=a^b;
                b=a^b;
                a=a^b;
                System.out.println("a="+a+";b="+b);
        }
}
请指教
作者: 哈韩浪子    时间: 2016-8-15 17:28
引入一个第三方的就可以啊
作者: 695212308    时间: 2016-8-15 17:35
A=(A+B)-(B=A)
作者: cc478508847    时间: 2016-8-15 22:38
异或有点不直观
作者: luliang    时间: 2016-8-15 23:26
class  Demo1
{
        public static void main(String[] args)
        {
                int a=2;
                int b=3;
                System.out.println("a="+a+";b="+b);
                a=a+b;
                b=a-b;
                a=a-b;
                System.out.println("a="+a+";b="+b);
        }
}
作者: luliang    时间: 2016-8-15 23:28
class  Demo1
{
        public static void main(String[] args)
        {
                int a=2;
                int b=3;
                System.out.println("a="+a+";b="+b);
               int  x ;
               x = a;
               a = b;
               b = a;
                System.out.println("a="+a+";b="+b);
        }
}
作者: accomplonely    时间: 2016-8-15 23:40
异或,不错的
作者: itcoder    时间: 2016-8-16 21:33
顶顶顶顶顶顶顶顶顶顶顶
作者: li--yong    时间: 2016-8-16 21:46
能想到异或,厉害,不过觉得好麻烦
作者: double_x    时间: 2016-8-16 21:52
这是骨灰级程序员写的吧
作者: 18072727834    时间: 2016-8-16 21:53
定义第三方变量 例:int temp = a; int a =b, int b= temp  这样就完成了两个变量的交换
作者: 冯潜001    时间: 2016-8-16 22:27
异或不熟的话有点麻烦
作者: lvyanxin    时间: 2016-8-16 23:00
变量很大时,位运算就比较慢了,算术运算也差不多。楼主可以去查一下地址算法(引入第三变量是最好的)
作者: 龙旋    时间: 2016-8-16 23:30
有三种方法可以实现互换,第三变量,异或,加法
作者: bin931207    时间: 2016-8-16 23:47
变量交换值有两种方法看个人喜好吧,如果追求高效的话用异或,毕竟第三方变量用完就变垃圾了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2