/** * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _ * | 平均复杂度 | 最好情况 | 最坏情况 | 空间复杂度 | 排序方式 | 稳定性 | * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * | O(n^2) | O(n) | O(n^2) | O(1) | In-place | 稳定 | * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 平均复杂度=c*(N−1)+(N−2)+...+1+0 =c*N*(N−1)/2 = O(N^2) */ public static void bubbling(int[] arr) { boolean continueSort; //是否继续排序 int length = arr.length; do { continueSort = false;//设为不要排序 for (int i = 1; i < length; i++) { if (arr[i - 1] > arr[i]) { int mid = arr[i]; arr[i] = arr[i - 1]; arr[i - 1] = mid; continueSort=true;//发现需要排序 } } length--;//排序完一次,下次就不需要全部遍历了 } while (continueSort); System.out.println(Arrays.toString(arr)); }