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);
    }
}
相关推荐
码农小灰2 分钟前
Java 8 Stream API 入门到实践详解
java·java案例
BUG收容所所长4 分钟前
二分查找的「左右为难」:如何优雅地找到数组中元素的首尾位置
前端·javascript·算法
步、步、为营7 分钟前
.NET 事件模式举例介绍
java·开发语言·.net
cui_hao_nan10 分钟前
设计模式——模板方法
java·设计模式
小吕学编程10 分钟前
HttpServletRequest常用方法
java·http
在未来等你11 分钟前
Java并发编程实战 Day 11:并发设计模式
java·设计模式·多线程·并发编程·threadlocal·生产者消费者·读写锁
李少兄23 分钟前
解决 idea提示`SQL dialect is not configured` 问题
java·sql·intellij-idea
BreezeDove29 分钟前
IDEA安装&迁移IDEA配置数据位置
java·ide·intellij-idea
太阳之神aboluo34 分钟前
压测软件-Jmeter
java·运维·jmeter
itsuifengerxing42 分钟前
python 自定义无符号右移
算法