冒泡排序Java代码
//每次选取较大的值交换到右边,最后最大的值到末尾
public static void bubbleSort(int[] nums, int left, int right) {
if (nums == null || nums.length <= 1 || left >= right) {
return;
}
for (int i = right; i > 0; i--) {
for (int j = left; j < i; j++) {
if (nums[j] > nums[j + 1]) {
swap(nums, j, j + 1);
}
}
}
}
//异或运算:无进位相加
//注意:a指向的内存和b指向的内存是独立的,即不是一块内存,哪怕a=1,b=1
public static void swap(int[] nums, int a, int b) {
nums[a] = nums[a] ^ nums[b];
nums[b] = nums[a] ^ nums[b];
nums[a] = nums[a] ^ nums[b];
}