冒泡排序

冒泡排序的描述

冒泡排序依次比较相邻两个数。如果升序排序,则将小数放前,大数放后,类似于气泡上升,顾名冒泡排序。

冒泡排序的分析

如下表展示冒泡排序的升序排序:

原始数组 34 8 64 51 32 21
第一趟 8 34 51 32 21 64
第二趟 8 34 32 21 51 64
第三趟 8 32 21 34 51 64
第四趟 8 21 32 34 51 64
第五趟 8 21 32 34 51 64

与插入排序相似需要两层循环,每次循环将最大值冒泡上升到后半部分有序数列的最前端。最后的时间复杂度是O(n*n)

冒泡排序升序排序的代码

public void bubbleSort(int[] arr){
    for (int i = 1; i < arr.length; ++i){
        for (int j = 0; j < arr.length - i; ++j){
            if(arr[j] > arr[j + 1]){
                int tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }
}

你可能感兴趣的