【Java】冒泡排序

【Java】冒泡排序

需求

从大到小排序

代码

package com.cxl;

import java.util.Arrays;

//从大到小 冒泡排序
public class Demo29 {
    public static void main(String[] args) {
        int[] arr = {24,73,26,84,46,74,35,45,53,36,66,63};
        System.out.println("排序前:");
        printArray(arr);
        sort(arr);
        System.out.println("\n排序后:");
        System.out.println(Arrays.toString(arr));
    }
    public static int[] sort(int[] arr){
        int[] result = new int[arr.length];
        int temp = 0;
        boolean flag = false;   //判断数组是否已经有序
        //外层循环判断比较走多少次
        for (int i = 0; i < arr.length-1; i++){ //因为是两两比较,无需到达最后一个,故length-1,
            //内层循环两两比较
            for (int j = 0; j < arr.length-1-i; j++) {
                if (arr[j+1] > arr[j]){ //交换
                    temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                    flag = true;
                }
            }
            //当数组已有序时,将不进行交换,则flag将不会置为true
            if (flag == false){
                System.out.print("\n数组已有序");
                break;
            }
        }
        return arr;
    }
    //打印数组
    public static void printArray(int[] arr){
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
    }
}

运行效果

运行效果

拓展

  • 冒泡排序时间复杂度为O(n^2)

版权声明:本文为weixin_57807561原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。