插入排序_优化
将 “交换” 转为 “挪动”
1、先将待插入的元素备份;
2、头部有序数据比待插入元素大的,都朝尾部方向挪动一个位置。
下面展示一些 内联代码片
。
package com.sortAlgorithm;
//当数据逆序对越多时,优化越明显
public class InsertionSort_1<E extends Comparable<E>> extends Sort<E> {
@Override
protected void sort() {
for(int begin = 1; begin < array.length; begin++) {
int cur = begin;
E v = array[cur];
while(cur > 0 && cmp(v, array[cur - 1]) < 0) {
array[cur] = array[cur - 1];
cur--;
}
array[cur] = v;
}
}
}