输入数组,将数组中的元素由小到大排序,利用每个元素的趟次和比较次数可提高程序的效率。
#include <stdio.h>
int main()
{
int i,j,n,t;
printf("请输入一个正整数n,作为数组的个数:");
scanf("%d",&n);
int a[n];
printf("请输入%d个数,作为该数组的元素:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);//输入数组元素
}
for(j=0;j<n-1;j++)//趟次
{
for(i=0;i<n-1-j;i++)//比较次数
{
if(a[i]>a[i+1])//将较小的数赋值给前项,较大的数赋值给后项
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
printf("该数组的元素从小到大排序后为:");
for(i=0;i<n;i++)
{
printf("%5d",a[i]);
}
return 0;
}
例如:输入10
9 8 7 6 5 4 3 2 1 0
运行结果如下: