美文网首页
冒泡排序

冒泡排序

作者: 天琊噬魂 | 来源:发表于2018-05-21 13:00 被阅读0次

冒泡排序(Bubble Sort)

正向排序--从前往后,由小到大
逆向排序--从前往后,由大到小(array[j]<array[j+1])
public class BubbleSort {
    public static int[] sort_asc(int[] array){
        for(int i=1; i<array.length-1; i++){
            boolean flag = false;
            for(int j=0; j<array.length-i; j++){
                if(array[j]>array[j+1]){
                    int temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                    flag = true;
                }
            }
            if(flag){
                System.out.println("第"+i+"轮排序结果为:");
                display(array);
            }
        }
        return array;
    }

    private static void display(int[] array) {
        for(int i = 0 ; i < array.length ; i++){
            System.out.print(array[i]+" ");
        }
        System.out.println();
    }

    public static void main(String[] args){
        int[] array = {7,4,1,3,9,5,2,8,6};
        System.out.println("未排序数组顺序为:");
        display(array);
        System.out.println("-----------------------");
        array = sort_asc(array);
        System.out.println("-----------------------");
        System.out.println("经过冒泡排序后(asc)的数组顺序为:");
        display(array);
    }
}

正向排序--从后往前,由小到大
逆向排序--从后往前,由大到小(array[j]>array[j-1])
public class BubbleSort {
    public static int[] sort_desc(int[] array){
        for(int i=1; i<array.length-1; i++){
            boolean flag = false;
            for(int j=array.length-1; j>i-1; j--){
                if(array[j]<array[j-1]){
                    int temp = array[j-1];
                    array[j-1] = array[j];
                    array[j] = temp;
                    flag = true;
                }
            }
            if(flag){
                System.out.println("第"+i+"轮排序结果为:");
                display(array);
            }
        }
        return array;
    }

    private static void display(int[] array) {
        for(int i = 0 ; i < array.length ; i++){
            System.out.print(array[i]+" ");
        }
        System.out.println();
    }

    public static void main(String[] args){
        int[] array = {7,4,1,3,9,5,2,8,6};
        System.out.println("未排序数组顺序为:");
        display(array);
        System.out.println("-----------------------");
        array = sort_desc(array);
        System.out.println("-----------------------");
        System.out.println("经过冒泡排序后(desc)的数组顺序为:");
        display(array);
    }
}

相关文章

网友评论

      本文标题:冒泡排序

      本文链接:https://www.haomeiwen.com/subject/hsufjftx.html