数组之冒泡排序--c语言

小伙伴们大家好 这次给大家分享 如何使用数组来实现冒泡排序

初学c语言的同学们一定会遇到这样的问题 在刚初学时难免会被难倒,希望看过这篇文章之后,可以对冒泡排序有一个更加深入的了解 完全的掌握

#include<stdio.h>
int main()
{
	int arr[5] = { 1,3,5,2,4 };//定义一个整型数组,存放五个整型数据
	int i = 0;
	int j = 0;
	for (i = 0; i < 4; i++)
	{
        //趟数由i决定
		for (j = 0; j < 5-1-i; j++)
		{
            //j控制的是需要交换比较的数的多少
			if (arr[j] > arr[j + 1])//利用if语句来判断相邻两元素之间的大小
			{
				int tmp = arr[j+1];//创建临时变量,用来储存数据
				arr[j + 1] = arr[j];
				arr[j] = tmp;
			}
		}
	}
	for (i = 0; i < 5; i++)//利用for循环将数组进行打印
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

首先冒泡排序的思想:两两相邻元素进行比较大小,有可能进行数据交换

话不多说上图来看

首先,对‘9’这个字符进行排序,按照升序,他已经到达自己应该待的位置

然后会得到一组新的元素,之后再进行一次新的排序

每次搞定一个数字,使它到达最终应该存在的位置,我们将此称为 一趟冒泡排序

这里需要注意一个很重要的点:因为交换比较大小是对两个数,所以例如我们有10个数字的话,只需要9趟便可以完成排列,同理 如果有n个数字,则需要n-1趟排列

另外 还有一个需要注意的点 这段代码

for循环中的第二条语句需要理解到位,即5个数字,需要交换排列四次即可完成排列,但是每当经过一次循环后,一个数字已经到达了他应该达到的位置,所以下次排列时无需再进行多余的一次排列,所以j控制的时需要交换比较的数的多少,需要用j-1-i;

好了,以上就是本次分享的内容,希望大家看完后会有收获,如果有什么疑问,欢迎在评论区留言或者私信我

 

 

 

 

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恋醉谎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值