冒泡排序~

1、对应长度len 数组,需要进行 len -1 趟冒泡,每趟冒泡,将最大(小)元素排列到最后无序位置

2、每趟冒泡从第一个元素开始,邻近两两比较,找出最大元素

每一趟冒泡,都进行元素交换,这里可以识别当没有发生元素交换,说明已经有序,直接结束

复制代码
int[] data = {0,5,4,8,9,3,2,67,23};
int len = data.length;

for(int loop = 0;loop< len-1;loop++){
    for(int j =0;j<len-1-loop;j++){
        if(data[j]>data[j+1]){
            int tmp =data[j];
            data[j]=data[j+1];
            data[j+1]=tmp;
        }
    }
}

每一趟冒泡,标记最大元素小标,结束再跟最后一个无序元素交换

复制代码
int[] data = {0,5,4,8,9,3,2,67,23};
int len = data.length;

for(int loop = 0;loop< len-1;loop++){
    int max_index = 0;
    for(int j =0;j<len-1-loop;j++){
        if(data[max_index]<data[j+1]){
            max_index = j+1;
        }
    }

    if(max_index != len -1 -loop){
        int tmp = data[max_index];
        data[max_index] = data[len-1-loop];
        data[len-1-loop] = tmp;
    }
}
相关推荐
Dfreedom.8 分钟前
一文掌握Python四大核心数据结构:变量、结构体、类与枚举
开发语言·数据结构·python·变量·数据类型
一半烟火以谋生9 分钟前
Python + Pytest + Allure 自动化测试报告教程
开发语言·python·pytest
虚行9 分钟前
C#上位机工程师技能清单文档
开发语言·c#
小羊在睡觉42 分钟前
golang定时器
开发语言·后端·golang
pengzhuofan1 小时前
第10章 Maven
java·maven
CoderCodingNo1 小时前
【GESP】C++四级真题 luogu-B4068 [GESP202412 四级] Recamán
开发语言·c++·算法
一个不知名程序员www1 小时前
算法学习入门---双指针(C++)
c++·算法
百锦再1 小时前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
刘一说1 小时前
Spring Boot 启动慢?启动过程深度解析与优化策略
java·spring boot·后端
Larry_Yanan1 小时前
QML学习笔记(四十四)QML与C++交互:对QML对象设置objectName
开发语言·c++·笔记·qt·学习·ui·交互