1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public
static
void
sort(
int
[] array) {
if
(array.length ==
0
|| array.length ==
1
)
return
;
for
(
int
i =
1
; i < array.length; i++) {
int
temp = array[i];
int
j;
for
(j = i -
1
; j >=
0
; j--) {
if
(array[j] > temp) {
array[j +
1
] = array[j];
}
else
{
break
;
}
}
array[j +
1
] = temp;
}
}
|
最优时间复杂度:O(n)
平均时间复杂度:O(n^2)
最坏时间复杂度:O(n^2)
平均空间复杂度:O(1)
插入排序如果对于相同的两个数不会改变他们的前后顺序,要么插入到相同数据的前方,要么插入到后方,但是相同数据的前后顺序是不变的,所以是插入排序稳定的。