冒泡排序
冒泡排序是稳定排序
冒泡排序是原地排序
排序原理:
把数组分成两个区间,已排序区间和带排序区间
比较两个相邻的元素,不符合升序就交换。
一次循环就能让最大的元素来到数组的最后(从前往后遍历)
也能通过一次循环就让最小的元素来到数组的最前(从后往前遍历)
public static void bubbleSort(int[] arr) {
for (int bound = 0; bound < arr.length; bound++) {
for (int cur = arr.length - 1; cur > bound; cur--) {
if (arr[cur - 1] > arr[cur]) {
swap(arr, cur - 1, cur);
}
}
}
}
public static void swap(int[] arr, int x, int y) {
int tmp = arr[x];
arr[x] = arr[y];
arr[y] = tmp;
}