https://blog.youkuaiyun.com/justloveyou_/article/details/72730597
直接插入排序的思想:
当插入第i(i>=1)个元素时,前面的V[0],…,V[i-1]等i-1个 元素已经有序。
这时,将第i个元素与前i-1个元素V[i-1],…,V[0]依次比较,找到插入位置即将V[i]插入,同时原来位置上的元素向后顺移。
在这里,插入位置的查找是顺序查找。直接插入排序是一种稳定的排序算法,其实现如下:
public class SortStraightInsert {
@Test
public void test() {
int[] a = {5, 7, 21, 2, 8, 31, 17, 3, 22, 15, 9, 6};
for (int i = 1; i < a.length; i++) {
while (i >= 1 && a[i - 1] > a[i]) {
swap(a, i - 1, i);
i--;
}
print(a);
}
}
private void swap(int[] a, int aIndex, int bIndex) {
int temp = a[bIndex];
a[bIndex] = a[aIndex];
a[aIndex] = temp;
}
public void print(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + ",");
}
System.out.println();
}
}