public void insertionSort(int[] a, int n) {
if (n <= 1) return;
for (int i = 0; i < n - 1; i++) { //i代表有序区间的最后一个数据下标
for (int j = i + 1; j > 0; j--) {
if (a[j] < a[j - 1]) {
int less = a[j];
a[j] = a[j - 1];
a[j - 1] = less;
} else {
break;
}
}
}
}
没有正确理解到插排是数据移动的特征,写了一个像插入排序也像冒泡排序的“正确”代码。
代码测试过,是能完成排序的预期,所以是说“正确”的代码