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

简介: 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练习题专栏,敬请期待

相关文章
|
5月前
|
存储 Java
创建一个乘法练习题生成器 using Java
创建一个乘法练习题生成器 using Java
|
5月前
|
Java
冒泡排序(java)
冒泡排序(java)
|
6月前
|
人工智能 Java
Java练习题-输出二维数组对角线元素和
Java练习题-输出二维数组对角线元素和
|
1月前
|
机器学习/深度学习 算法 搜索推荐
让星星⭐月亮告诉你,Java冒泡排序及其时间复杂度计算
冒泡排序是一种简单的排序算法,通过多次遍历数组,每次比较相邻元素并交换位置,将较小的元素逐步移至数组前端。第一轮结束后,最小值会位于首位;第二轮则将次小值置于第二位,依此类推。经过 (n-1) 轮遍历后,数组完成排序。冒泡排序的时间复杂度为 O(n²),在最优情况下(已排序数组)时间复杂度为 O(n)。示例代码展示了如何实现冒泡排序。
51 1
|
1月前
|
算法 Java
java冒泡排序与二分查找(详解)
java冒泡排序与二分查找(详解)
35 4
|
1月前
|
人工智能 Java
java之冒泡排序8个数
java之冒泡排序8个数
10 0
|
3月前
|
搜索推荐 Java
|
6月前
|
存储 Java 索引
Java练习题-获取数组元素最大值
Java练习题-获取数组元素最大值
Java练习题-获取数组元素最大值
|
6月前
|
存储 搜索推荐 算法
Java中的数组排序技术详解
Java中的数组排序技术详解
57 0
|
6月前
|
Java
<Java SE> 数组详解大全(附带练习题).一维数组、二维数组、数组拷贝、数组遍历...
<Java SE> 数组详解大全(附带练习题).一维数组、二维数组、数组拷贝、数组遍历
47 0