01-冒泡排序算法

冒泡排序

秋天来了,准备把数据结构与算法过一遍。

冒泡排序特点:每遍历一次,最大/小的往下沉,最多遍历n次,时间复杂度为

冒泡排序代码

public static void bubbleSort(int[] array, int len){
    boolean isSwap; //swap flag
    //need n-1 times traverse at most
    for (int i = 1; i < len; i++){
        isSwap = false;
        for (int j = 0; j < len-i; j++){ //swap
            if (array[j] > array[j+1]){
                int temp = array[j];
                array[j] = array[j+1];
                array[j+1] = temp;
                isSwap = true;
            }
        }
//        System.out.print(String.format("第%d次遍历之后数组为:", i));
//        for (int x = 0; x < len; x++){
//            System.out.print(array[x] + " ");
//        }
//        System.out.println();
        if (!isSwap) break;
    }
}

测试样例代码

public static void main(String[] args){
    System.out.println("测试样例1:");
    int[] array = {54321};
    bubbleSort(array, 5);

    System.out.println(" 测试样例2:");
    int[] array2 = {12543};
    bubbleSort(array2, 5);
}

测试结果

测试样例1:
第1次遍历之后数组为:4 3 2 1 5 
第2次遍历之后数组为:3 2 1 4 5 
第3次遍历之后数组为:2 1 3 4 5 
第4次遍历之后数组为:1 2 3 4 5 

测试样例2:
第1次遍历之后数组为:1 2 4 3 5 
第2次遍历之后数组为:1 2 3 4 5 
第3次遍历之后数组为:1 2 3 4 5 

----- end -----

原文地址:https://www.cnblogs.com/denluoyia/p/9673089.html