冒泡排序 C语言

本文介绍了如何通过添加一个布尔值判断来优化C语言中的冒泡排序算法,当数组已经排序时,可以提前终止排序过程,提高效率。优化后的冒泡排序会在每轮迭代中检查是否有元素交换,如果没有交换则说明数组已经有序,从而避免了后续的无用操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初始冒泡排序

//冒泡排序
void bubbleSort(int* arr, int arrSize)//数组  数组长度
{
	int i, j;  
	for (i = 0; i < arrSize; i++)
	{   if (!b){ break; }
		for (j = 0;j<arrSize-i-1;j++) 
		{
			int temp;
			if (arr[j] > arr[j + 1])
			{
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
}

优化

方法:加个值判断是否有必要继续排序

如果判断值为真,说明进行了排序
如果判断值为假,说明已经排序完毕,不需要再进行排序

void bubbleSort(int* arr, int arrSize)//冒泡排序(优化)
{
	int i, j;  
	bool b = true;
	for (i = 0; i < arrSize; i++)
	{   if (!b){ break; }
	     b = false;
		for (j = 0;j<arrSize-i-1;j++) 
		{
			int temp;
			if (arr[j] > arr[j + 1])
			{
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
				b = true;
			}
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值