C语言--对数组操作内容(冒泡法与打擂台算法)

使用冒泡法对一维数组进行操作将数组进行排序
使用打擂台算法对二维维数组进行操作得到其最大值

我们首先了解冒泡法,掌握其中的原理,冒泡法就是将数组中的第一个元素与其其他元素进行一次比较,如果你采用降序法,那么就是第一轮第一个数组元素比较完之后,最小值在第一个元素;接着再将数组的第二个元素与后面的元素进行比较,当第二轮比较完之后,在数组第二个元素与后面元素中的最小的那个元素会赋值给数组第二个元素;......依次如此,直到倒数第二个元素与最后一个元素进行比较。

接下来看代码:冒泡法对一维数组进行排序:

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int array[10];
	int i,j,k;
	printf("请输入这个数组为:");
	for(i=0;i<10;i++)
		scanf("%d",&array[i]);
	printf("\n");
	for(i=0;i<9;i++)
		for(j=i+1;j<10;j++)   //最后一轮比较是倒数第一个元素与最后一个元素进行比较,所以当i等于倒数第二个元素时,j为倒数第一个元素,比较完之后不需要再进行比较。所以i<9,j<10;
		{
		if(array[i]>array[j])   
		{
		k=array[i];
		array[i]=array[j];
		array[j]=k;
		}
		}
	printf("经过降序排序的数组为:");
	for(i=0;i<10;i++)
		printf("%d ",array[i]);
	printf("\n");
system("pause");
return 0;
}

运行结果为:
在这里插入图片描述

这里,我们可以看到,与选择法不同的是,冒泡法只要满足了比较条件,就会将数组元素进行调换,而选择法是,选择法进行一轮,将索引元素进更换,比较完一轮找到最小/大元素的索引之后,再进行值的调换。应该注意的内容在代码注释当中,这里不进行详细描述。

现在我们来了解打擂台算法,打擂台算法的原理是,默认一个值为最大元素,接着与各各元素进行比较,达到寻找最大值的目的

接下来看代码:打擂台法筛选出二维数组的最大值

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int i,j;
	int array[3][3]={{10,12,11},{14,16,18},{13,17,15}};
	int max=array[0][0];
	for(i=0;i<3;i++)
		for(j=0;j<3;j++)
			if(array[i][j]>max)
				max=array[i][j];
	printf("请输出最大值为:%d\n",max);
	system("pause");
	return 0;
}

运行结果为:
在这里插入图片描述
当我们敲代码的过程中,我们会发现,其实指定第一个元素为最大元素的打擂台和冒泡法的原理相似,不过打擂台算法并不改变二维数组,只是通过比较将最大元素进行输出赋值给max。

对数组进行排序操作还有选择法,选择法在我的上一期介绍当中,这期内容较简单,进行简单浏览即可

选择法在这:

http://t.csdn.cn/HjisF

若觉得内容稍可,请留下你们的

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值