Java中的冒泡排序

一.什么是冒泡排序:

一种最基础的交换排序。之所以叫做冒泡排序,因为每一个元素都可以像小气泡一样,根据自身大小一点一点向数组的一侧移动。

二.原理

每次比较相邻两数 小的交换到前面 每轮结束后最大的数交换到最后

通过下面这个图片来了解冒泡排序的原理:

Alt

三.代码理解

	public static void main(String[] args) {
		// 冒泡排序
		int[] nums = { 11, 56, 94, 78, 33 };
		// 排序前输出数组
		System.out.println("排序前的数组:");
		for (int i = 0; i < nums.length; i++) {
			System.out.print(nums[i] + " ");
		}
		System.out.println();

		// 外层循环控制行数(外控循环控制比较的轮数)
		for (int i = 0; i < nums.length - 1; i++) {
			// 内层循环控制列数(内层循环控制每一轮的比较次数)
			for (int j = 0; j < nums.length - 1 - i; j++) {
				// 比较:如果前面的元素比后面的元素大,交换位置
				if (nums[j] > nums[j + 1]) {
					int temp = nums[j];
					nums[j] = nums[j + 1];
					nums[j + 1] = temp;
				}
			}
		}

		System.out.println("排序后的数组:");
		for (int i = 0; i < nums.length; i++) {
			System.out.print(nums[i] + " ");
		}
	}

四.通过题目来理解

用二重循环将5个数字升序排序

  • 5个数字如何存放
    • 数组,数组.length = 5
  • 控制比较多少轮
    • 外层循环,循环变量 i
  • 控制每轮比较多少次
    • 内层循环,循环变量 j
  • 交换数据
		public static void main(String[] args) {
		// 使用冒泡排序对输入的5名学员成绩进行降序排列

		// 创建Scanner类对象
		Scanner sc = new Scanner(System.in);

		// 准备好长度为5的数组用来存储5名学员的成绩
		double[] scores = new double[5];

		// 从键盘输入5位学员的成绩并存储在数组中
		for (int i = 0; i < scores.length; i++) {
			System.out.println("请输入第" + (i + 1) + "位学员的成绩:");
			scores[i] = sc.nextDouble();
		}

		// 排序前输出5位学员的成绩
		System.out.println("排序前:");
		for (double d : scores) {
			System.out.print(d + " ");
		}
		System.out.println();

		// 降序排序
		for (int i = 0; i < scores.length - 1; i++) {
			for (int j = 0; j < scores.length - 1 - i; j++) {
				if (scores[j] < scores[j + 1]) {
					double temp = scores[j];
					scores[j] = scores[j + 1];
					scores[j + 1] = temp;
				}
			}
		}
		System.out.println("排序后:");
		for (double d : scores) {
			System.out.print(d + " ");
		}
	}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值