以升序排序为例,从上往下,两两之间进行比较,若上面的数比下面的数大,则交换位置,也就是较大者下沉,这样每一轮比较结束都会产生一个本轮次的最大值,较小的数就会不断向上移动,好像气泡向上漂浮一样。
特点: 升序排序中每一轮比较会把最大的数沉到最底,所以每一轮比较的次数都会比上一轮少一次。
代码示例:
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
//创建一个数组
int[] nums = {9, 7, 17, 15, 2};
System.out.println("原始数组:"+ Arrays.toString(nums));
//创建临时变量
int temp;
//外层for循环控制比价的轮数
for (int i = 0; i <= nums.length - 1; i++) {
//内层for循环控制比较的次数
for (int j = 0; j < nums.length - 1 - i; j++) {
if (nums[j] > nums[j + 1]) {
//将较大的数存入temp
temp = nums[j];
//再将较小的数位置前移
nums[j] = nums[j + 1];
//较大的数位置后移,完成位置交换
nums[j + 1] = temp;
}
}
}
//打印冒泡排序后的数组
System.out.println("-----------------------------------");
System.out.println("冒泡排序完成:"+ Arrays.toString(nums));
}
}
运行结果:
原始数组:[9, 7, 17, 15, 2]
-----------------------------------
冒泡排序完成:[2, 7, 9, 15, 17]
代码小兵64503-29 11:46
代码小兵87208-06 11:36
代码小兵34507-29 13:19