1、用两个数求和然后相减的方式进行数据交换,需要注意int范围,若a+b超过int范围会损失精度。
package cn.itcats.sort;
public class ChangeValue {
public static void main(String[] args) {
int a = 1;
int b = 2;
a = a + b;
b = a - b;
a = a - b;
System.out.println("a= "+a+" ,b= "+b);
}
}
2、利用位运算的方式进行数据的交换,原理是:一个数 异或 同一个数两次,结果还是那个数,且不会超出int范围。
private void swap(int[] arr, int i, int j) {
arr[i] = arr[i] ^ arr[j];
arr[j] = arr[i] ^ arr[j];
arr[i] = arr[i] ^ arr[j];
}