036 冒泡排序

代码实践

java 复制代码
// 冒泡排序
static void bubbleSort(Comparable[] elements) {
    // 临时容器,用于变量交换值时存储
    Object temp;
    // 标志位 用于减少无意义的循环次数
    boolean flag;
    for (int i = 0; i < elements.length - 1; i++) {
        flag = false;
        for (int j = 0; j < elements.length - 1 - i; j++) {
            if (elements[j].compareTo(elements[j + 1]) > 0) {
                temp = elements[j];
                elements[j] = elements[j + 1];
                elements[j + 1] = (Comparable)temp;
                flag = true;
            }
        }
        // 为false说明已经排好序了,结束多余的循环即可
        if(flag == false){
            break;
        }
    }
}

public static void main(String[] args) {
    // 准备10个可排序元素
    Scanner scanner = new Scanner(System.in);
    String[] arr = new String[10];
    for (int i = 0; i < arr.length; i++) {
        System.out.print("请输入第" + (i + 1) + "/" + arr.length + "个可排序元素:");
        arr[i] = scanner.nextLine();
    }
    // 执行冒泡排序
    bubbleSort(arr);
    // 输出排序后结果
    for (Object e : arr) {
        System.out.println(e);
    }
}
相关推荐
2301_801252225 小时前
Tomcat的基本使用作用
java·tomcat
lkbhua莱克瓦245 小时前
Java基础——常用算法3
java·数据结构·笔记·算法·github·排序算法·学习方法
小白程序员成长日记5 小时前
2025.11.07 力扣每日一题
数据结构·算法·leetcode
·白小白5 小时前
力扣(LeetCode) ——209. 长度最小的子数组(C++)
c++·算法·leetcode
小猪咪piggy5 小时前
【算法】day16 动态规划
算法·动态规划
ohnoooo96 小时前
251106 算法
数据结构·c++·算法
麦麦鸡腿堡6 小时前
Java_TreeSet与TreeMap源码解读
java·开发语言
教练、我想打篮球6 小时前
05 kafka 如何存储较大数据记录
java·kafka·record
uesowys6 小时前
华为OD算法开发指导-简易内存池
java·算法·华为od
gladiator+6 小时前
Java中的设计模式------策略设计模式
java·开发语言·设计模式