冒泡排序(C语言)

排序算法 - 冒泡排序(Bubble Sorf)

冒泡排序的原理如下:

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

  2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

  3. 针对所有的元素重复以上的步骤,除了最后一个。

  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

下面图中只是一个元素进行若干次排序,我们有十个元素,所以我们会排序9次

 

 代码如下:

void Bubble_sorf(int arr[], int sz)//接收数组首元素,接收数组元素个数
{
	int i = 0;
    //数组个数-1得出要循环的次数
	for (i = 0; i < sz - 1; i++)
	{
		int j = 0;
        //sz-1-i第一次要比较九次,第二次比较8次,所以我们-i最合适不过
		for (j = 0; j < sz - 1 - i; j++)
		{
			if (arr[j] > arr[j + 1])//如果是降序,可以把大于号反过来
			{
				int tmp = arr[j];//创建一个临时变量,临时存放元素方便交换
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
			}
		}
	}
}

int main()
{     //创建要排序的数组
	int arr[] = { 10, 8, 6, 4, 2, 9, 7, 5, 3, 1 };
    //计算数组元素的个数
	int sz = sizeof(arr) / sizeof(arr[0]);

    //冒泡函数
	Bubble_sorf(arr, sz);

	return 0;
}

完整代码:

void Bubble_sorf(int arr[], int sz)//接收数组首元素,接收数组大学
{
	int i = 0;
    //数组个数-1得出要循环的次数
	for (i = 0; i < sz - 1; i++)
	{
		int j = 0;
        //sz-1-i第一次要比较九次,第二次比较8次,所以我们-i最合适不过
		for (j = 0; j < sz - 1 - i; j++)
		{
			if (arr[j] > arr[j + 1])//如果是降序,可以把大于号反过来
			{
				int tmp = arr[j];//创建一个临时变量,临时存放元素方便交换
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
			}
		}
	}
}

int main()
{     //创建要排序的数组
	int arr[] = { 10, 8, 6, 4, 2, 9, 7, 5, 3, 1 };
    //计算数组元素的个数
	int sz = sizeof(arr) / sizeof(arr[0]);

    //冒泡函数
	Bubble_sorf(arr, sz);
    //打印数组每个元素
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr[i]);
	}

	return 0;
}

运行结果:

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不会敲代码的小张:)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值