C语言冒泡排序(起泡法)

C语言冒泡排序(起泡法)

  1. 冒泡法排序是C语言中较简单的 排序算法 的 。
  2. 定义:它重复地走访过要排序的元素列,依次比较两个相邻的元素,让较大的元素逐渐往后移动(交换两个元素的值),直到数组的末尾。如此反复,直到没有可以交换的元素,(即从小到大排序好)。
  3. 思路:
    有n个数,每轮替换一个数,假设最大的数在第一个,则一共需要替换n-1轮;此时最大数已经在最下面,
    所以第二轮替换少一轮,以此类推;

在函数和数组中

/*对输入的数进行从小到大排序*/
#include <stdio.h>

void Bubble(int foam[]);//冒泡排序

int main()
{
	int froth[10];
	int i;
	for(i=0;i<=9;i++)//动态赋值
	{
		scanf("%d",&froth[i]);
	}
	Bubble(froth);//数组址传递

	return 0;
}
void Bubble(int foam[])
{
	int t;
	int j,k;
	for(j=0;j<9;j++)//进行9轮循环
	{
		for(k=0;k<9-j;k++)//减去循环的轮数
		{
			if(foam[k]>foam[k+1])//假设前面的数大于后面的数,如果真,则替换;
			{
				t = foam[k];
				foam[k] = foam[k+1];
				foam[k+1] = t;
			}
		}
	}
	putchar('\n');

	for(j=0;j<=9;j++)//输出替换好的值
	{
		printf("%3d",foam[j]);
	}
}

在数组中

#include <stdio.h>
void main()
{
	int a[8];//定义数组
	int i,k;
	int t;//替换变量
	printf("输入8个整数:");
	for(i=0;i<=7;i++)//数组赋值
	{
		scanf("%d",&a[i]);
	}
	for(k=0;k<7;k++)
	{
		for(i=0;i<7-k;i++)
		{
			if(a[i]>a[i+1])
			{
				t = a[i];
				a[i] = a[i+1];
				a[i+1] = t;
			}
		}
	}

	for(i=0;i<=7;i++)//输出
	{
		printf("%d\n",a[i]);
	}

}
  • 16
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值