先用代码说话:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public
static
void
sort(
int
[] array) {
if
(array ==
null
|| array.length <=
1
)
return
;
int
temp;
for
(
int
i =
0
; i < array.length; i++) {
for
(
int
j = i +
1
; j < array.length; j++) {
if
(array[i] > array[j]) {
temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}
}
}
|
冒泡排序作为最基本的排序算法,平均时间复杂度上为n^2,在最好的情况下排序的时间复杂度也为n,所以基本上作为一种入门级别的算法出现,很少真正用到实际应用中。
最优时间复杂度:O(n)
平均时间复杂度:O(n^2)
最坏时间复杂度:O(n^2)
平均空间复杂度:O(1)
由于遇到array[i]==array[i]的时候前后并没有发生交换,所以总体上冒泡是稳定的排序算法