异或实现冒泡排序
代码依据
int a = 10;
int b = 11;
int c = a ^ b;
a的值 = b ^ c
b的值 = a ^ c
//先创建一个随机数组
int[] arrs = new int[10];
for(int i=0;i<arrs.length;i++){
arrs[i] = (int)(Math.random()*100);
}
//原始数组
for(int a : arrs){
System.out.print(a + "\t");
}
System.out.println();
//进行冒泡排序
int variable = 0;
for(int i=0;i<arrs.length;i++){
for(int j=0;j<=i;j++){
if(arrs[i] < arrs[j]){
variable = arrs[i]^arrs[j];
arrs[i] = arrs[i]^variable;
arrs[j] = arrs[j]^variable;
}
}
}
for(int a : arrs){
System.out.print(a + "\t");
}
结果
原数组
32 98 94 84 82 10 47 81 42 23
排序后
10 23 32 42 47 81 82 84 94 98