冒泡排序
/**
* 思路:内循环是逐位进行比较 [j] [j+1]
* 前者大于后者进行交换
* 每次内循环选出最大的,且选出来的最大数据不参与之后的比较
*/
public class MaoPao {
public static void main(String[] args) {
int[] a = {2, 7, 3, 8, 5, 9};
//选出每轮最大的
for (int i = a.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
//两两比较,前者大于后者交换
if (a[j] > a[j + 1]) {
swap(a, j, j + 1);
}
}
}
System.out.println(Arrays.toString(a));
}
private static void swap(int[] a, int j, int i) {
//这里可以^运算是因为,这两个一定不相等,不是一块地址
a[j] = a[j] ^ a[i];
a[i] = a[j] ^ a[i];
a[j] = a[j] ^ a[i];
}
}