精华内容
下载资源
问答
  • Java 交换两个数的三种方法

    万次阅读 热门讨论 2018-06-02 19:44:35
    1.创建一个临时变量存储两个中某个值----最Lowb的方法 private void swap(int a,int b){ int tmp = a; a = b; b = tmp; }2.两相加保存和值----中规中矩的办法 private void swap(int a,int b){ a = a + b; b ...

    1.创建一个临时变量存储两个中某个值----最Lowb的方法

     

    private void swap(){
        int a = 10;
        int b = 100;
        int tmp = a;
        a = b;
        b = tmp;
    }

    2.两数相加保存和值----中规中矩的办法

     

    private void swap(){
        int a = 10;
        int b = 100;
        a = a + b;
        b = a - b;
        a = a - b;
    }

    3.两数异或保存两数状态----高大上的方法

     

    private void swap(){
        int a = 10;
        int b = 100;
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;
    }

     

    展开全文
  • Java交换两个数的方法

    千次阅读 2018-08-27 17:35:37
    方法一,引入第三方变量 public class Mock { public static void main(String[] args) { ...交换前:"+"a="+a+"\t"+ "b="+b); temp = a; a = b; b = te...

    方法一,引入第三方变量

    public class Mock {
    
    	public static void main(String[] args) {
    		int a = 20;
    		int b = 10;
    		int temp = 0;
    		System.out.println("交换前:"+"a="+a+"\t"+ "b="+b);
    		temp = a;
    		a = b;
    		b = temp;
    		System.out.println("交换后:"+"a="+a+"\t"+ "b="+b);
    
    
    	}
    
    }

    方法二,不引入第三方变量

    public class Mock {
    
    	public static void main(String[] args) {
    		int a = 20;
    		int b = 10;
    		System.out.println("交换前:"+"a="+a+"\t"+ "b="+b);
    		a = a + b;
    		b = a - b;
    		a = a - b;
    		System.out.println("交换后:"+"a="+a+"\t"+ "b="+b);
    
    
    	}
    
    }

    方法三,不引入第三方变量

    public class Mock {
    
    	public static void main(String[] args) {
    		int a = 20;
    		int b = 10;
    
    		System.out.println("交换前:"+"a="+a+"\t"+ "b="+b);
    		a = a ^ b;
    		b = a ^ b;
    		a = a ^ b;
    		System.out.println("交换后:"+"a="+a+"\t"+ "b="+b);
    
    
    	}
    
    }

     

    展开全文
  • Java交换两个数的四种方法和效率

    千次阅读 2017-12-23 15:56:49
    两个数交换的四种常用方法: 1.中间变量交换 2.加减减法交换 3.赋值交换 4.异或交换以下是Java代码:public static void main(String[] args){ long start, end; int a = 10, b = 20; long count = ...

    两个数交换的四种常用方法:
    1.中间变量交换
    2.加减减法交换
    3.赋值交换
    4.异或交换

    以下是Java代码:

    public static void main(String[] args){
        System.out.println();
        System.out.println();
        long start, end;
        int a = 10, b = 20;
        long count = 1000000000L;
    
        start = System.currentTimeMillis();
        for(long i = 0; i < count; i++){
            a = b + (b = a) * 0;
        }
        end = System.currentTimeMillis();
        a = b + (b = a) * 0;
        System.out.println("*******************************");
        System.out.println("a=" + a +" " + "b=" + b);
        System.out.println("1.赋值交换耗时:" + (end-start) + "ms");
        System.out.println("*******************************");
        a = 10; b = 20;  //恢复原a、b值
    
        start = System.currentTimeMillis();
        for(long i = 0; i < count; i++){
            a += b;
            b = a - b;
            a -= b;
        }
        end = System.currentTimeMillis();
        a += b;
        b = a -b;
        a -= b;
        System.out.println("a=" + a +" " + "b=" + b);
        System.out.println("2.加减减交换耗时:" + (end-start) + "ms");
        System.out.println("*******************************");
        a = 10; b = 20;  //恢复原a、b值
    
        start = System.currentTimeMillis();
        int t;
        for(long i = 0; i < count; i++){
            t = a;
            a = b;
            b = t;
        }
        end = System.currentTimeMillis();
        t = a;
        a = b;
        b = t;
        System.out.println("a=" + a +" " + "b=" + b);
        System.out.println("3.中间变量交换耗时:" + (end-start) + "ms");
        System.out.println("*******************************");
        a = 10; b = 20;  //恢复原a、b值
    
        start = System.currentTimeMillis();
        for(long i = 0; i < count; i++){
            a ^= b;
            b ^= a;
            a ^= b;
        }
        end = System.currentTimeMillis();
        a ^= b;
        b ^= a;
        a ^= b;
        System.out.println("a=" + a +" " + "b=" + b);
        System.out.println("4.异或交换耗时:" + (end-start) + "ms");
        System.out.println("*******************************");
    }

    结果输出:


    a=20 b=10
    1.赋值交换耗时:1124ms


    a=20 b=10
    2.加减减交换耗时:895ms


    a=20 b=10
    3.中间变量交换耗时:598ms


    a=20 b=10
    4.异或交换耗时:1475ms


    展开全文
  • 讨论交换两个数的方法对某些人来说无聊,但某些人很乐意探究,甚至某些面试官喜欢用这个做文章。刚出来找工作笔试的时候我也碰到与之相关的问题。 常见的两个数交换的方法 边赋值边运算 加减减交换 用中间变量...

    原文地址——http://blog.csdn.net/qq525099302/article/details/47294443

    论两个数的交换的重要性

    讨论交换两个数的方法对某些人来说无聊,但某些人很乐意探究,甚至某些面试官喜欢用这个做文章。刚出来找工作笔试的时候我也碰到与之相关的问题。

    常见的两个数交换的方法

    • 边赋值边运算
    • 加减减交换
    • 用中间变量交换
    • 异或交换

    下面是代码

    public class Test {
        public static void main(String[] args) {
            long start,end; 
            int a = 100000, b = 200000, t;
            start = System.currentTimeMillis();
            for (int i = 0; i <= 1000000000; i++) {// 边赋值边运算——462
                a = b + (b = a) * 0;
            }
            end = System.currentTimeMillis();
            System.out.println(end - start);
            start = System.currentTimeMillis();
            for (int i = 0; i <= 1000000000; i++) {// 加减减交换——898
                a += b;
                b = a - b;
                a -= b;
            }
            end = System.currentTimeMillis();
            System.out.println(end - start);
            start = System.currentTimeMillis();
            for (int i = 0; i <= 1000000000; i++) {// 用中间变量交换——449
                t = a;
                a = b;
                b = t;
            }
            end = System.currentTimeMillis();
            System.out.println(end - start);
            start = System.currentTimeMillis();
            for (int i = 0; i <= 1000000000; i++) {// 异或交换——896
                a ^= b;
                b ^= a;
                a ^= b;
            }
            end = System.currentTimeMillis();
            System.out.println(end - start);
        }
    }

    说明

    注释后面的数字是我的电脑运行10亿次交换所用的时间(毫秒)

    总结

    如果没有强迫症或者硬性要求,用中间变量交换是最好的方法。
    如果要走非主流边赋值边运算是最有效率的。
    加减减和异或虽然看起来挺酷的,但是运算多,慢是应该的。
    统计

    展开全文
  • java交换两个数的值的三种方法

    千次阅读 2019-05-11 09:11:06
    public class Demo { public static void main(String[] args) { int a = 3;//0011 二进制表示 int b = 5;//0101 a = a ^ b;//0110 6 b = a ^ b;//0101 0011 3 异或算法 ...//0110 0011 = 0101 ...
  • java两个数交换

    千次阅读 2019-09-05 16:36:35
    public class Exchange { public static void main(String[] args) { int num1=8; int num2=9; System.out.println("交换前:"); System.out.println("num1:"+num1); Syste...
  • JAVA写一个函数交换两个数字

    千次阅读 2018-01-13 17:06:55
    写了个程序测试了下,直接交换和用包装了交换都不能交换两个数的值,而采用数组交换和成员变量交换是可以做到的 package com.wq.swap; public class SwapNumbers { public int a; public int b; //包装类交换...
  • Java交换两个数的值 三个方法

    千次阅读 2015-11-10 14:50:20
    //法二:使用类封装两个数 Element element = new Element(1,2); change(element); System.out.println("element.x = " + element.getA() + " , " + " element.b = " + element.getB()); //法三:通过...
  • Java中不使用第三个数交换两个数

    千次阅读 2017-11-07 16:57:57
    不使用第三个数交换两个数
  • 交换两个数字常用的方法就是定义一个tmp变量,代码如下 ...而利用Java的调用方法来交换两个数字的值,没有那么直接,我们需要用到数组这个引用类型,才能在方法中实现两个数字的交换。 下面是代码示例: ...
  • Java 实现两个数字的交换

    千次阅读 2018-08-07 16:25:14
    import java.util.Scanner; public class change2{ public static void main(String[] args){ Scanner s=new Scanner(System.in);... System.out.println(“请输入第一个数:”); int a=s.n...
  • Java快速交换两个数的值

    千次阅读 2012-06-27 12:22:36
    1:通过使用异或运算,可以快速将两个数的值交换:原理如下:  我们知道异或是相同取0相反取1,如:0101异或1101的结果是1000。如对两个数,经过三次进行异或运行后的结果是这两个数的值互换。如 a = 0101, b=1101...
  • 上课的时候,做习题遇到Java交换两个数值的问题,知道Java是传值的,就像类似于C语言那样写一个swap()函数是无法交换传入的两个熟知的,因为,传进来的两个数字的确在swap()函数内部实现了交换,但是离开这个...
  • Java交换两个数据的四种方法

    千次阅读 2019-06-05 14:40:50
    Java交换两个数据的四种方法 我们熟知的交换两个数的方法是使用中间变量,但是这种方式需要引入一个无关的量,这自然会影响交换效率,因此我们提供另外三种数据交换方式。 1.引入变量 我们知道在计算机中,定义的每...
  • Java两个数交换的细节问题

    千次阅读 2014-04-21 09:29:11
    在码代码过程中,两个数交换是经常用到的,但在Java 中,如果忽略了值传递和引用传递就很容易...这是不能成功交换两个数的,就算是C、C++也不行,因为这是通过值传递的方式实现交换的 int x = 100; int y = 1; swap
  • Here you will get python program to swap two ... 在这里,您将获得python程序,可以在不使用临时变量的情况下交换两个数字。 Python程序使用临时变量交换两个数字 (Python Program to Swap Two Numbers Using...
  • java使用异或操作交换两个数字的值

    千次阅读 2018-02-02 13:39:51
    java使用异或操作交换两个数字的值 源码: @Test public void test3(){ int a = 10; int b = 20; a = a ^ b; b = a ^ b; a = a ^ b; System.out.println("a = "+a); System.out.println("b = "+b); }
  • Java 交换两个变量值的方法

    千次阅读 2018-09-01 13:59:26
    Java 交换两个变量值的方法 第一种:使用第三个变量进行交换 int a = 5; int b = 6; int c = a; a = b; b = c; 输出结果截图: 第二种:不使用第三个变量(利用加法) int a = 5; int b = 6; a = a +...
  • 今天问一个简单的问题,如何用JAVA写一个函数交换两个数并在main函数中输出交换呢? 01 简单方案-----错误方法 首先想到的是这种方法,用一个中间数,然后直接交换。 代码如下 /** *@author *@email *@...
  • Java实现两个数的值的交换

    千次阅读 2019-09-27 13:54:38
    Swap.java public class Swap { private int number; public Swap(int i){ this.number=i; } public int getNumber(){ return number; } public void setNumber(int number){ this.number = num...
  • Java中实现两个数交换,使用中间变量的方法,无外乎采用引用的方法: void swap(int &amp;a,int &amp;b){ int temp; temp = a; a = b; b = temp; } 或者使用指针: void swap(int *a,int *b){ ...
  • 详解交换两个数的五种思路

    万次阅读 2020-02-03 17:14:25
    不过这么想是因为很多时候都想简单了,没有把编程的巧妙使用到极致,那么接下来我们来看看,交换两个数这么简单的问题,怎么玩出不一样的花出来,哈哈哈。 •利用新变量 这种方法是非常非常基本的一种方式,直接...
  • java异或交换两个整数或字符串原理

    千次阅读 2011-07-13 13:04:58
    java交换两个数或字符串可以用temp来交换,如果不使用temp,有下面两种交换方法:1.对于数来说,可以用a = a + b; b = a - b; a = a - b; 来进行交换 2.更为通用的方法是用异或来交换a=a^b; b=b^a; a=b^a;
  • 两数交换的三种方法C#_java 两数交换的三种方法 两数交换方法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 254,479
精华内容 101,791
关键字:

java交换两个数

java 订阅