總結.png
方式一,最常見的交換方式
實現
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更佳
缺點
- 只能用在整型