- 第i轮开始,arr[n-i, n)已排好序
- 第i轮: 通过冒泡在arr[n-i- 1]位置放上合适的元素
- 第i轮结束:arr[n-i- 1, n)已排好序
private static <E extends Comparable<E>> void sort3(E[] data) {for (int i = 0; i < data.length - 1;) {int lastSwappedIndex = 0;for (int j = 0; j < data.length - i - 1; j++) {if (data[j].compareTo(data[j + 1]) > 0) {swap(data, j, j + 1);lastSwappedIndex = j + 1;}}//arr[n - i, n)已排好序i = data.length-lastSwappedIndex;}}
