Java练习题-用冒泡排序法实现数组排序

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆

📃个人主页:hacker707的csdn博客

🔥系列专栏:Java练习题

💬个人格言:不断的翻越一座又一座的高山,那样的人生才是我想要的。这一马平川,一眼见底的活,我不想要,我的人生,我自己书写,余生很长,请多关照,我的人生,敬请期待💖💖💖

用冒泡排序法实现数组排序

题目

编写程序,实现对数组{25,24,12,76,128,95,63}的排序。提示:使用冒泡排序法

冒泡排序法

冒泡排序法简单来说就是通过比较相邻元素并进行互换,最大(或最小)的元素逐渐移动到列表的末尾,直到整个数组有序

实现思路

1.创建一个整形数组arr,并初始化数值

java 复制代码
int[] arr = {25,24,12,76,128,95,63};

2.定义一个外层循环控制 比较轮数,总共需要比较arr.length-1

java 复制代码
for(int i = 0; i < arr.length - 1; i++)

3.定义一个内层循环控制每轮比较的次数,逐个比较相邻元素的大小

java 复制代码
for(int j = 0; j < arr.length - 1 - i; j++)

4.如果当前元素比后一个元素大,则交换它们的位置,通过int temp = arr[];arr[j] = arr [j+1];arr[j+1] = temp实现位置交换,循环结束后最大(最小)的元素就被冒泡到数组末尾

java 复制代码
if(arr[j] > arr[j+1]){
      int temp = arr[j];
       arr[j] = arr[j+1];
       arr[j+1]=temp;
   }

5.使用增强型for循环for (int j : arr) { System.out.print(j + " "); }遍历排序后的数组并打印每个元素。

java 复制代码
for (int j : arr) {
    System.out.print(j + " ");
}

💨扩展:增强型for循环和普通for循环的区别

第一个for-each循环(也称为增强型for循环)更加简洁和易读。它可以直接遍历整个数组,并将每个元素赋值给迭代变量j。对于只需要访问数组元素而无需关心索引的情况,使用for-each循环更加合适。

第二个普通for循环需要手动维护一个索引变量i,并通过数组的长度arr.length来控制循环次数。这种循环方式适用于需要访问数组元素的索引或者需要对数组元素进行修改的情况。

总体而言,选择哪个循环更好用取决于你的具体需求和个人偏好。如果只是需要遍历并打印数组元素,建议使用第一个for-each循环。如果需要操作数组元素的索引或者进行一些复杂的逻辑处理,那么使用第二个普通for循环比较合适。

具体代码实现

java 复制代码
public class BubbleSort {
    public static void main(String[] args){
        //创建一个数组
        int[] arr = {25,24,12,76,128,95,63};
        //使用冒泡排序法对数组进行排序
        for(int i = 0; i < arr.length - 1; i++){
            for(int j = 0; j < arr.length - 1 - i; j++){
                //如果前一个数比后一个数大,就交换两个数
                if(arr[j] > arr[j+1]){
                    //创建一个临时变量
                    int temp = arr[j];
                    //交换两个数
                    arr[j] = arr[j+1];
                    //将后一个数赋值给前一个数
                    arr[j+1]=temp;
                }
            }
        }
        //遍历数组
        for (int j : arr) {
            System.out.print(j + " ");
        }
    }
}

结束语

以上就是Java练习题-用冒泡排序法实现数组排序
持续更新Java练习题专栏,敬请期待

专栏地址:Java练习题💕

相关推荐
凌波粒25 分钟前
MyBatis完整教程IDEA版(2)--ResultMap/注解/一对多/多对一/lombok/log4j
java·intellij-idea·mybatis
蓝-萧31 分钟前
【玩转全栈】----Django基本配置和介绍
java·后端
priority_key31 分钟前
排序算法:堆排序、快速排序、归并排序
java·后端·算法·排序算法·归并排序·堆排序·快速排序
汤姆yu2 小时前
基于SpringBoot的动漫周边商场系统的设计与开发
java·spring boot·后端
皮皮林5512 小时前
快速解决 Maven 版本冲突指南 !
java·maven
灰小猿2 小时前
Spring前后端分离项目时间格式转换问题全局配置解决
java·前端·后端·spring·spring cloud
算法与编程之美2 小时前
理解Java finalize函数
java·开发语言·jvm·算法
怕什么真理无穷3 小时前
C++面试4-线程同步
java·c++·面试
lkbhua莱克瓦243 小时前
Java基础——常用算法5
java·开发语言·笔记·github
牢七3 小时前
javan小案例。
java