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);
    }
}
相关推荐
belldeep4 分钟前
java:如何用 JDBC 连接 TDSQL 数据库
java·数据库·jdbc·tdsql
2301_1472583691 小时前
7月2日作业
java·linux·服务器
香饽饽~、1 小时前
【第十一篇】SpringBoot缓存技术
java·开发语言·spring boot·后端·缓存·intellij-idea
小莫分享1 小时前
移除 Java 列表中的所有空值
java
2301_803554523 小时前
c++中类的前置声明
java·开发语言·c++
hn小菜鸡5 小时前
LeetCode 377.组合总和IV
数据结构·算法·leetcode
不想写bug呀6 小时前
多线程案例——单例模式
java·开发语言·单例模式
Deepoch6 小时前
Deepoc 大模型:无人机行业的智能变革引擎
人工智能·科技·算法·ai·动态规划·无人机
心平愈三千疾6 小时前
通俗理解JVM细节-面试篇
java·jvm·数据库·面试
我不会写代码njdjnssj6 小时前
网络编程 TCP UDP
java·开发语言·jvm