插入排序
插入排序核心
假设数组中的一部数据已经排好序,要插入的数据和这些数据进行比较,直到找到合适的位置插入新数据。
插入排序步骤
插入排序主要有以下步骤构成:
- 假设有序,我们假设**a[0]**已经排好序
- 待插入的数据为a[j], 从[j-1,0] 进行比较,如果待插入数据小于比较数据,则将前一个数据向后移动
- 将要插入的数据放置在插入的位置。
插入排序图解步骤
插入排序的参考实现
for (int i = 1; i < array.length; i++) {
int tmp = array[i];
int j;
for (j = i; j >= 0 && tmp < array[j - 1]; j--) {
array[j] = array[j - 1];
}
array[j] = tmp;
}