• ## 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;
}

展开全文
• 方法一，引入第三方变量 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);

}

}

展开全文
• 两个数交换的四种常用方法： 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亿次交换所用的时间（毫秒）
总结
如果没有强迫症或者硬性要求，用中间变量交换是最好的方法。  如果要走非主流边赋值边运算是最有效率的。  加减减和异或虽然看起来挺酷的，但是运算多，慢是应该的。  
展开全文
• 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...
• 写了个程序测试了下，直接交换和用包装了交换都不能交换两个数的值，而采用数组交换和成员变量交换是可以做到的 package com.wq.swap; public class SwapNumbers { public int a; public int b; //包装类交换...
• //法二：使用类封装两个数 Element element = new Element(1,2); change(element); System.out.println("element.x = " + element.getA() + " , " + " element.b = " + element.getB()); //法三：通过...
• 不使用第三个数交换两个数
• 交换两个数字常用的方法就是定义一个tmp变量，代码如下 ...而利用Java的调用方法来交换两个数字的值，没有那么直接，我们需要用到数组这个引用类型，才能在方法中实现两个数字的交换。 下面是代码示例： ...
• 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...
• 1：通过使用异或运算，可以快速将两个数的值交换：原理如下：  我们知道异或是相同取0相反取1，如：0101异或1101的结果是1000。如对两个数，经过三次进行异或运行后的结果是这两个数的值互换。如 a = 0101, b=1101...
• 上课的时候，做习题遇到Java交换两个数值的问题，知道Java是传值的，就像类似于C语言那样写一个swap（）函数是无法交换传入的两个熟知的，因为，传进来的两个数字的确在swap（）函数内部实现了交换，但是离开这个...
• Java交换两个数据的四种方法 我们熟知的交换两个数的方法是使用中间变量，但是这种方式需要引入一个无关的量，这自然会影响交换效率，因此我们提供另外三种数据交换方式。 1.引入变量 我们知道在计算机中，定义的每...
• 在码代码过程中，两个数交换是经常用到的，但在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使用异或操作交换两个数字的值 源码： @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 交换两个变量值的方法 第一种：使用第三个变量进行交换 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 *@...
• 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){ ...
• 不过这么想是因为很多时候都想简单了，没有把编程的巧妙使用到极致，那么接下来我们来看看，交换两个数这么简单的问题，怎么玩出不一样的花出来，哈哈哈。 •利用新变量 这种方法是非常非常基本的一种方式，直接...
• 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 两数交换的三种方法 两数交换方法

...

java 订阅