// 冒泡排序
for (int i = 0; i < intArr.length-1; i++) {
for (int j = 0; j < intArr.length-1-i; j++) {
if(intArr[j] > intArr[j+1]){
int temp = intArr[j];
intArr[j] = intArr[j+1];
intArr[j+1] = temp;
可以用两个数求和然后相减的方式进行数据交换,
弊端在于如果 x 和 y 的数值过大的话,超出 int 的值会损失精度
intArr[j] = intArr[j] + intArr[j+1];
intArr[j+1] = intArr[j] - intArr[j+1];
intArr[j] = intArr[j] - intArr[j+1];
利用位运算的方式进行数据的交换,利用的思想原理是:
一个数异或同一个数两次,结果还是那个数,而且不会超出int范围
intArr[j] = intArr[j] ^ intArr[j+1] ;
intArr[j +1] = intArr[j] ^ intArr[j+1] ;
intArr[j] = intArr[j] ^ intArr[j+1] ;
}
}
}
Java中的冒泡排序交换变量值的三种方式
最新推荐文章于 2021-07-22 19:28:35 发布