Skip to main content

冒泡排序

冒泡排序思想

冒泡排序动态图

冒泡排序动态图

冒泡排序推理

冒泡排序推理图

规律总结

  • 趟数(轮数) 由上图可知我们的数组有五个元素,那一共的趟数也就是 5-1=4 一共是四趟。
    那我们元素有n个,那躺数就是 n-1。
  • 交换次数
    第一轮:元素个数5-1=四次
    第二轮:元素个数5-2=三次
    第三轮:元素个数5-3=二次
    第四轮: 元素个数5-4=一次 交换次数=4+3+2+1 = 10 = (n - 1) + (n - 2) + ... + 2 + 1 = n * (n - 1) / 2

具体代码实现

    public static int bubbleSort(int[] param) {
int length = param.length;
int temp = 0;
for (int i = 0; i < length-1; i++) {
for (int j = 0; j < length - 1 -i; j++) {
if (param[j] > param[j+1]) {
temp = param[j];
param[j] = param[j+1];
param[j+1] = temp;
}
}
}
}

总结

时间复杂度

最坏情况

假如是已经是升序排好的,现将降序排列。那对于时间复杂度就是平方阶:O(n^2)

最优情况

加入boolean控制,当第一次就没有元素进行交换,那就是说明元素本身就是有序的。那对于时间复杂度就是线性阶:O(n)

空间复杂度

空间复杂度就是:O(1)

稳定性

冒泡排序属于稳定的排序

Loading Comments...