使用异或的方式进行交换
/**
*
* 异或交货数组两个下标的值【x和y不能相同】
* 相同的两个数异或为 0
* 任何值和0进行异或都是自己本身
* 设 arr[x] 为甲
* 设 arr[y] 为已
* 甲 = 甲 ^ 已
* 已 = 甲 ^ 已 ^ 已 ——————> 甲
* 甲 = 甲 ^ 已 ^ 甲 ——————> 已
*
* @param arr
* @param x
* @param y
*/
public static void swap(int[] arr, int x, int y) {
arr[x] = arr[x] ^ arr[y];
arr[y] = arr[x] ^ arr[y];
arr[x] = arr[x] ^ arr[y];
}