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);
    }
}
相关推荐
最后一个bug3 分钟前
rt-linux中使用mlockall与free的差异
linux·c语言·arm开发·单片机·嵌入式硬件·算法
Q_192849990616 分钟前
基于Spring Boot的个人健康管理系统
java·spring boot·后端
蹉跎x1 小时前
力扣1358. 包含所有三种字符的子字符串数目
数据结构·算法·leetcode·职场和发展
m0_748245171 小时前
Web第一次作业
java
小码的头发丝、1 小时前
Java进阶学习笔记|面向对象
java·笔记·学习
m0_548514771 小时前
前端Pako.js 压缩解压库 与 Java 的 zlib 压缩与解压 的互通实现
java·前端·javascript
rainoway1 小时前
CRDT宝典 - yata算法
前端·分布式·算法
坊钰2 小时前
【Java 数据结构】移除链表元素
java·开发语言·数据结构·学习·链表
chenziang12 小时前
leetcode hot100 LRU缓存
java·开发语言