C语言冒泡法

C语言冒泡法_第1张图片

哈喽!

大家好,我们今天结束C语言期末考试啦

不知道各位同学考完了没呢?

由于在考试前依然有很多同学不清楚冒泡法怎么用

这期我专门整理了一下冒泡法的用法,

供大家参考哦!

我们先来看一下源代码:

// 冒泡法对数字进行排序
 
#include

int main() {
	int a[10],i,j,t;
	printf("请输入10个数字,数字中间用空格隔开:\n"); // 输出给用户提示信息 
	for(i=0;i<=9;i++)
		scanf("%d",&a[i]);
	for(i=0;i<9;i++) // 排序过程 
		for(j=0;j<9-i;j++)
			if(a[j]>a[j+1]) {
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
	printf("排序后的结果是:\n"); // 提示输出 
	for(i=0;i<=9;i++)
		printf("%d\t",a[i]);
	return 0;
	
}

从代码中我们可以发现,除去输入输出数组语句外,

并没有多少代码了,

冒泡法的原理就是:

假设将10个数从小到大排列,

相邻两个数比较,如果发现前一项比后一项大,那么这两项

就互换,之后再两两相比,这样比较一轮下来,

我们就可以得到一个最大值。

需要排十个数,外循环就是i=0~i=8,9次即可

for(i=0;i<9;i++) {
		for(j=0;j<9-i;j++)
			if(a[j]>a[j+1]) {
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
}

下面是运行结果图:

C语言冒泡法_第2张图片

当然,我们还可以将代码加以改进,比如自定义函数:

// 升级版----调用函数使用冒泡法

#include

void fun(int a[]); //声明使用冒泡法排序的函数 

int main() {
	int a[10],i;
	printf("请输入10个数字,数字中间用空格隔开:\n"); // 输出给用户提示信息 
	for(i=0;i<=9;i++)
	scanf("%d",&a[i]); // 在这里输入10个要排序的数字
	fun(a); // 调用函数 
	printf("排序后的结果是:\n"); // 提示输出 
	for(i=0;i<=9;i++)
	printf("%d\t",a[i]); // 输出排好序后的10个数字 
	return 0;
} 

// 函数体

void fun(int a[]) {
	int t,i,j;
	for(i=0;i<9;i++) // 排序过程 
		for(j=0;j<9-i;j++)
			if(a[j]>a[j+1]) {
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
}  

下面是运行结果图:

C语言冒泡法_第3张图片

就到这里吧!我们下期见,拜拜~

你可能感兴趣的:(c语言,开发语言,算法)