先用代码说话:
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]的时候前后并没有发生交换,所以总体上冒泡是稳定的排序算法