方式一,最常见的交换方式
实现
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更佳
缺点
- 只能用在整型