最坏 平均 时间复杂度 :O (n^2)
最好时间复杂度: O (n)
空间复杂度: O (1)
排序算法的稳定性:
如果相等的两个元素,在排序前后的相对位置保持不变,那么就是稳定的排序算法

冒泡排序:
for (int i = arr.length - 1; i >= 0; i--) {for (int j = 0; j < i; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}
用boolean判断是否有序
for (int i = arr.length - 1; i >= 0; i--) {boolean sorted = true;for (int j = 0; j < i; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;sorted = false;}}if (sorted) {//说明有序的break;}}
用一个int变量记录索引
for (int i = arr.length - 1; i >= 0; i--) {//初始值为完全有序做个准备int sortIndex = 0;for (int j = 0; j < i; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;sortIndex = j;}}i = sortIndex;}
图片理解:
bubbleSort
