数据交换的方式

姓名:王怀帅  学号: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更佳

缺点

只能用在整型

你可能感兴趣的:(数据交换的方式)