题目
编写程序,实现对数组{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练习题专栏,敬请期待