算法基础篇2

算法基础,排序之冒泡排序。

基本思路

每次比较相邻的的两个元素,如果它们的顺序是错误的,就将他交换,负责继续判断下一组元素。如果从小到大排,越大的数的位置将会越后,每组元素比较完进行下一组元素时,数目将会减一。

代码实现如下

#include<stdio.h>

int main ()
{
	int a[100];
	int i,j,temp,n;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	scanf("%d",&a[i]); //数据准备阶段
	for(i=1;i<=n-1;i++) //只需要到达n-1就可以了
	{
		for(j=1;j<=n-i;j++) //想想为什么到达n-i就可以了
		{
			if(a[j]<a[j+1])
			{
				temp=a[j]; //通过temp坐中间变量交换两个元素
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}
	for(i=1;i<=n;i++) //输出结果
	printf("%d ",a[i]);
	
	getchar(); getchar();
	return 0;
}

输入数值验证

10
152 78 9 0 1000 278 80 73 11 500

运行结果是:

0 9 11 73 78 80 152 278 500 1000

备注

要从大到小排序只需改变if判断语句就可以了

发布了12 篇原创文章 · 获赞 0 · 访问量 724

猜你喜欢

转载自blog.csdn.net/weixin_43252204/article/details/83586686
今日推荐