栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

vs2019冒泡排序(C语言)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

vs2019冒泡排序(C语言)

***************例题 *************** 输入三个整数 按从大到小的顺序输出。

运用C语言可以采用 依次比较 的方法比较其大小顺序。

#include 
int main() {
	int a, b, c;
	int t;
	printf("输入三个数字:");
	scanf_s("%d,%d,%d",&a, &b, &c);     //输入三个数字逗号隔开

	//比较大小,进行排序
	if (a < b)
	{
		t = a;
		a = b;
		b = t;
	}
	if (a < c)
	{
		t = a;
		a = c;
		c = t;
	}
	if (b < c)
	{
		t = b;
		b = c;
		c = t;
	}
	
	//输出结果
	printf("排序后的结果是:%d,%d,%d", a, b, c);
		return 0;
输入三个数字:28,88,66
排序后的结果是:88,66,28

可当要排序的数据变多之后,代码会显得繁多,可以采用更为简洁方便的方式。

冒泡排序

在学习了循环和数组之后,可以采用冒泡排序的方法。
冒泡排序:依次比较相邻的两个数,如果第一个比第二个小,就交换他们两个直到无法再排序。
因此,大的数就会像水里的气泡一样浮到最上端,实现排序的功能。

代码如下:

#include 
int main() {
	int i,j;
	int a[3] = {22,88,66};     //输入三个数字

	for (i = 0;i < 3;i++)      //外层循环
	{
		for (j = 0;j < 3 - i;j++)		//内层循环
		{
			if(a[j] 
			int t = a[j];			//互换位置
			a[j] = a[j + 1];
			a[j + 1] = t;
			}
		}
	}
	
	printf("排序后的结果是:");
	for (int i = 0; i < 3; i++)//遍历
	{
	printf("%3d",a[i]);  //在输出函数里的格式中百分号后面添加一个数字,表示空格,输出后更为直观。
	}
		return 0;
}

输入三个数字:28,88,66
排序后的结果是:88 66 28

其核心为利用循环比较数据大小,交换数据,实现排序。

for (i = 0;i < n;i++)      //n为数据个数
	{
		for (j = 0;j < n - i;j++)		
		{
			if(a[j] 
			int t = a[j];			//互换位置
			a[j] = a[j + 1];
			a[j + 1] = t;
			}
		}
	}

要实现从小到大排序,可以将比较大小中的" < “改为” > "。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1021853.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号