冒泡排序
- 比较相邻元素,如果前者比后者大,交换位置
- 对每一对相邻元素进行同样操作,遍历一次之后,最后一个元素为最大元素
public class BubbleSort {
public static void bubbleSor(int[] arr) {
// 边界条件(不存在或者长度小于2)
if (arr == null || arr.length < 2) {
return;
}
/**
* 0~N
* 0~N-1
* 0~N-2
* 0~N-3
* ......
* i--
*/
for (int i = arr.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr, i, i + 1);
}
}
}
}
private static void swap(int[] arr, int i, int j) {
arr[i] = arr[i] ^ arr[j];
arr[j] = arr[j] ^ arr[i];
arr[i] = arr[i] ^ arr[j];
}
}