1 过程
2 代码
public static <T extends Comparable<T>> void insertSort(T[] arr) {
T tmp = null;
int i, j;
for (i = 1; i < arr.length; i++) {
tmp = arr[i];
for (j = i; j > 0 && tmp.compareTo(arr[j - 1]) < 0; j--) {
arr[j] = arr[j - 1];
}
arr[j] = tmp;
}
}
3 分析
空间复杂度:只使用了tmp一个临时变量,空间复杂度为O(1)
时间复杂度:最好的情况是全部有序,只需要比较n-1次,不需要移动,为O(n);
最坏的情况为逆序,为O(n2);平均为为O(n2)
稳定性:是稳定的排序方法。