直接插入排序--基本思想
在要排序的一组数中,假设前面的(n-1)[n>=2] 个数已经是排好序的。现在要把第n个数插入到前面的有序数中,使得n个数也是排好序的。如此反复循环,直到全部排好顺序。
上代码 :
/**
* 插入排序
* 平均O(n^2),最好O(n),最坏O(n^2);空间复杂度O(1);稳定;简单
* @author zeng
*
*/
public
static
void
insertionSort(
int
[] a) {
int
tmp;
for
(
int
i =
1
; i < a.length; i++) {
for
(
int
j = i; j >
0
; j--) {
if
(a[j] < a[j -
1
]) {
tmp = a[j -
1
];
a[j -
1
] = a[j];
a[j] = tmp;
}
}
}
}