【C语言】简单排序(二)冒泡排序

一、算法框图

二、代码实现

/********************
名称:冒泡排序
作者:豆豆 
********************/
#include<stdio.h>
#define LENGTH 6										//宏定义数列长度为 6 

int main()
{
	//【初始化】数列
	int a[LENGTH]={18,8,64,56,34,7}; 					//这里用到了数列长度 6							 
	
	//打印初始数列,查看初始化是否成功
	printf("--------------------\n\n"); 
	printf("初始数列为:\n");
	printf("%d %d %d %d %d %d\n\n",
			a[0],a[1],a[2],a[3],a[4],a[5]); 			//避免这行太长,加了一个换行 
	printf("--------------------\n");
	
	//开始排序
	for(int i=0;i<LENGTH-1;i++)							//第一层循环,i代表【趟数】 
	{
		printf("【第%d趟】\n",i+1); 
		for(int j=0;j<LENGTH-1;j++)						//第二层循环,j代表【每一趟】交换的【次数】 
		{
			printf("\n第%d次\n\n",j+1); 
			if(a[j]>a[j+1])
			{
				int t;									//缓存变量
				//交换 
				t		=	a[j]	;
				a[j]	=	a[j+1]	;
				a[j+1]	=	t		; 
				printf("%d %d %d %d %d %d\n",
						a[0],a[1],a[2],a[3],a[4],a[5]);	//如果本次交换,则输出交换后的数列 
			}
			else
				printf("次序正确,未交换!\n"); 
		} 
		printf("\n****************"
				"\n第%d趟输出结束!"
				"\n****************\n",i+1);			//字符串中间可以拆开 
		printf("--------------------\n");
	} 
	
	//输出结果 
	printf("\n排序后数列为:\n");
	printf("%d %d %d %d %d %d\n",
			a[0],a[1],a[2],a[3],a[4],a[5]);
	return 0;
}

三、运行结果

--------------------

初始数列为:
18 8 64 56 34 7

--------------------
【第1趟】

第1次

8 18 64 56 34 7

第2次

次序正确,未交换!

第3次

8 18 56 64 34 7

第4次

8 18 56 34 64 7

第5次

8 18 56 34 7 64

****************
第1趟输出结束!
****************
--------------------
【第2趟】

第1次

次序正确,未交换!

第2次

次序正确,未交换!

第3次

8 18 34 56 7 64

第4次

8 18 34 7 56 64

第5次

次序正确,未交换!

****************
第2趟输出结束!
****************
--------------------
【第3趟】

第1次

次序正确,未交换!

第2次

次序正确,未交换!

第3次

8 18 7 34 56 64

第4次

次序正确,未交换!

第5次

次序正确,未交换!

****************
第3趟输出结束!
****************
--------------------
【第4趟】

第1次

次序正确,未交换!

第2次

8 7 18 34 56 64

第3次

次序正确,未交换!

第4次

次序正确,未交换!

第5次

次序正确,未交换!

****************
第4趟输出结束!
****************
--------------------
【第5趟】

第1次

7 8 18 34 56 64

第2次

次序正确,未交换!

第3次

次序正确,未交换!

第4次

次序正确,未交换!

第5次

次序正确,未交换!

****************
第5趟输出结束!
****************
--------------------

排序后数列为:
7 8 18 34 56 64

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值