算法基础,排序之冒泡排序。
基本思路
每次比较相邻的的两个元素,如果它们的顺序是错误的,就将他交换,负责继续判断下一组元素。如果从小到大排,越大的数的位置将会越后,每组元素比较完进行下一组元素时,数目将会减一。
代码实现如下
#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判断语句就可以了