排序过程
从小到大进行排序,首先交换的区间为0—N-1,将前一个数和后一个数进行比较,前面大于后面,交换两个数,否则不交换,该轮将最大的数放到了最右端。第二轮比较区间为0—N-2,前面大于后面,交换两个数否则不交换。依次进行。最后范围只剩一个数时数组即为有序。
排序的各项指标
平均时间复杂度:O(N^2)
最坏时间复杂度:O(N^2)
空间复杂度:O(1)
是否稳定:稳定
排序实现
在这里插入代码片
public static void bubbleSort(int[] arr) {
if (arr == null || arr.length == 0) {
return;
}
for (int i = arr.length - 1; i >= 0; i--) {
for (int j = 0; j < i; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr, j, j + 1);
}
}
}
}
public static void swap(int[] arr, int a, int b) {
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}