给你N个整数,你能帮我排排序吗?
输入描述
第一行为一个整数n(1≤n≤5000)。
第二行为n个整数,相邻整数之间间隔一个空格。第二行整数的范围介于-10^9~10^9之间。
输出描述
输出升序排序后的结果。注意行末没有空格。
题解:
看到题目第一眼,想到最简单的比大小。但是由于需要比较的数字个数不清楚,因此需要考虑用多一层的循环。
首先把输入的数字,全部赋值到a的数组中。然后把a[i]和a[i+1]进行比较,若a[i]大,就利用temp,把二者数值交换。但这个过程只能换一次,因此需要在外面多包一层循环,才有可能将最小的排到第一个。
#include
int main()
{
long n,i,j,temp;
scanf("%ld",&n);
long a[6000];
for (i=1;i<=n;i++) scanf("%ld",&a[i]);
for (j=1;j<=n;j++)
{
for (i=1;i
{
if(a[i]>a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;}
}
}
for (i=1;i<=n;i++)
{
if(i
else printf("%ld",a[i]);
}
return 0;
}