姓名:王怀帅 学号:16040410035
转载自:http://www.jianshu.com/p/7c59750000e9=有修改
【嵌牛导读】:交换数据的方式分为最为普通的方式、更加省内存的方式、对于整数型数据最佳的交换方式
【嵌牛鼻子】:数据交换
【嵌牛提问】:通过什么方法来实现数据交换的种种方式?
【嵌牛正文】:
方式一,最常见的交换方式
实现
public static void swap2(Object[] myArray,int a,int b){
Object temp=myArray[a];
myArray[a]=myArray[b];
myArray[b]=temp;
}
第一种方式是最常用的方式,新建一个变量来进行交换
方式二,相对更加省内存的交换方式
优化起因
我们能不能不用第三个变量,就两个变量进行交换
实现
public static void swap1(int[] myArray, int a, int b) {
if (a!=b) {
myArray[a] = myArray[a] + myArray[b];
myArray[b] = myArray[a] - myArray[b];
myArray[a] = myArray[a] - myArray[b];
}
}
第二种方式,采用了加减的方法
思路过程:a=a+b->b=a+b-b;a=a+b-b
优点
更加的节省内存
缺点
a+b的时候容易产生溢出
很难运用到不是数字的其他类中
方式三,整数型数据最佳的交换方式
实现
public static void swap3(int[] myArray,int a,int b){
if (a!=b) {
myArray[a] = myArray[a] ^ myArray[b];
myArray[b] = myArray[a] ^ myArray[b];
myArray[a] = myArray[a] ^ myArray[b];
}
}
原因
计算机的处理二进制运算符相对比较快
优点
运行效率相对于方式2更佳
缺点
只能用在整型