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);
    }
}
相关推荐
用户6083089290472 分钟前
Java中的接口(Interface)与抽象类(Abstract Class)
java·后端
前行的小黑炭21 分钟前
Android LayoutInflater 是什么?XML到View的过程
android·java·kotlin
尚久龙30 分钟前
安卓学习 之 SeekBar(音视频播放进度条)
android·java·学习·手机·android studio
要一起看日出32 分钟前
Shiro概述
java·spring boot·java-ee
不秃的开发媛35 分钟前
Java开发入门指南:IDE选择与数据库连接详解
java·数据库·ide
没有bug.的程序员41 分钟前
Redis Sentinel:高可用架构的守护者
java·redis·架构·sentinel
Zhen (Evan) Wang43 分钟前
.NET 6 文件下载
java·前端·.net
塔中妖1 小时前
【华为OD】分割数组的最大差值
数据结构·算法·华为od
weixin_307779131 小时前
最小曲面问题的欧拉-拉格朗日方程 / 曲面极值问题的变分法推导
算法