利用冒泡排序法将给出的5个整数对他们按由小到大的顺序排列。

思路:数字排序方法有:冒泡排序法,选择排序法等,现在我们讲前者,它通过两层循环遍历数组,每次比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置。这样,每一轮循环都会将当前未排序部分的最大元素移动到末尾。最终,数组就会按照从小到大的顺序排列。

假设有一个未排序的数组:[5, 3, 8, 6, 4, 2]

第一轮比较和交换:

  • 比较:5 和 3,5 > 3,不交换。
  • 比较:5 和 8,5 < 8,不交换。
  • 比较:8 和 6,8 > 6,交换,得到 [5, 3, 6, 8, 4, 2]。
  • 比较:6 和 4,6 > 4,交换,得到 [5, 3, 4, 6, 8, 2]。
  • 比较:6 和 2,6 > 2,交换,得到 [5, 3, 4, 2, 6, 8]。

第二轮比较和交换:

  • 比较:5 和 3,5 > 3,交换,得到 [3, 5, 4, 2, 6, 8]。
  • 比较:5 和 4,5 > 4,交换,得到 [3, 4, 5, 2, 6, 8]。
  • 比较:5 和 2,5 > 2,交换,得到 [3, 4, 2, 5, 6, 8]。
  • 比较:5 和 6,5 < 6,不交换。
  • 比较:5 和 8,5 < 8,不交换。

以此类推,经过多轮比较和交换,最终得到有序的数组。

在每一轮中,最大的元素会逐渐“浮”到数组的末尾。通过多次重复这个过程,直到整个数组都有序。

#include<stdio.h>
int main()
{
	int a, b, c, d, e, i, j;
	scanf("%d%d%d%d%d", &a, &b, &c, &d, &e);
	int arr[5] = { a,b,c,d,e };
	for (i = 0; i < 4; i++)
	{
		for (j = 0; j < 4 - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int t;
				t = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = t;
			}
		}
	}
	for (i = 0; i < 5; i++)
	{
		printf("%d", arr[i]);
		printf(" ");
	}
	return 0;
}

代码说明:

i代表轮次,j代表两个数之间的比较次数,a,b,c,d,e分别代表你想比较的数字。

  • 27
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值