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

news/2024/11/28 17:41:08/

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆
📃个人主页:hacker707的csdn博客
🔥系列专栏:Java练习题
💬个人格言:不断的翻越一座又一座的高山,那样的人生才是我想要的。这一马平川,一眼见底的活,我不想要,我的人生,我自己书写,余生很长,请多关照,我的人生,敬请期待💖💖💖

在这里插入图片描述

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

  • 题目
    • 冒泡排序法
    • 实现思路
    • 具体代码实现
  • 结束语

题目

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

冒泡排序法

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

实现思路

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

int[] arr = {25,24,12,76,128,95,63};

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

for(int i = 0; i < arr.length - 1; i++)

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

for(int j = 0; j < arr.length - 1 - i; j++)

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

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 + " "); }遍历排序后的数组并打印每个元素。

for (int j : arr) {System.out.print(j + " ");
}

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

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

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

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

具体代码实现

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练习题💕

在这里插入图片描述


http://www.ppmy.cn/news/1141122.html

相关文章

自学接口测试系列 —— 自动化测试用例设计基础!

一、接口测试思路总结 ❓首先我们在进行接口测试设计前思考一个问题&#xff1a;接口测试&#xff0c;测试的是什么&#xff1f; ❗我们必须要知道&#xff0c;接口测试的本质&#xff1a;是根据接口的参数&#xff0c;设计输入数据&#xff0c;验证接口的返回值。 那么接口…

我在 NPM 发布了新包: con-colors

链接地址&#xff1a;npmjs.com con-colors 安装依赖 yarn add con-colors使用 导入&#xff1a; import { print } from "con-colors";使用&#xff1a; print.succ("成功的消息"); print.err("失败的消息")例子&#xff1a; import { p…

宏任务队列和微任务队列

setTimeout(function() {console.log(1); }, 0);new Promise(function (resolve, reject) {resolve(2); }).then(console.log);console.log(3); // 3 // 2 // 1关于微任务&#xff08;Promise中的then回调&#xff09;为什么早于宏任务&#xff08;setTimeout&#xff09;的执行…

【SpringBoot】| Thymeleaf 模板引擎

目录 Thymeleaf 模板引擎 1. 第一个例子 2. 表达式 ①标准变量表达式 ②选择变量表达式&#xff08;星号变量表达式&#xff09; ③链接表达式&#xff08;URL表达式&#xff09; 3. Thymeleaf的属性 ①th:action ②th:method ③th:href ④th:src ⑤th:text ⑥th:…

【RHAL】板子烧widevine key

前言&#xff1a;国庆回来工作后很懵逼…又遇见了新问题&#xff0c;因为旧板子烧坏了&#xff0c;新板子系统没带widevine key&#xff0c;我用旧板子命令烧pass&#xff0c;新板子apk烧就fail。 又接触到了新的领域&#xff0c;新名词。不错的&#xff0c;甲方乙方一起带我学…

解决loadDep:omelette: sill install loadAllDepsIntoIdealTree

报错信息如下&#xff1a; 解决方案&#xff1a; 1、设置为淘宝的镜像源 npm config set registry https://registry.npm.taobao.org 2、 命令检验是否成功 npm config get registry 3、继续运行npm install即可 npm install 运行效果&#xff1a;

【React】深入理解React组件状态State

目录 一、何为State二、如何定义State三、如何判断是否为State四、如何正确使用State1、用setState修改State2、State的更新是异步的①、代码示例 3、State更新会被合并①、组件状态例子②、当只需要修改状态title时&#xff0c;只需要将修改后的title传给setState③、React会合…

Java中的transient关键字是什么意思?

Java中的transient关键字是什么意思&#xff1f; 在Java中&#xff0c;transient 是一个关键字&#xff0c;用于修饰实例变量&#xff08;成员变量&#xff09;。当一个实例变量被声明为transient 时&#xff0c;它的值不会被持久化&#xff08;即不会被序列化&#xff09;。 …