給你N個(gè)整數(shù),你能幫我排排序嗎?
輸入描述
第一行為一個(gè)整數(shù)n(1≤n≤5000)。
第二行為n個(gè)整數(shù),相鄰整數(shù)之間間隔一個(gè)空格。第二行整數(shù)的范圍介于-10^9~10^9之間。
輸出描述
輸出升序排序后的結(jié)果。注意行末沒有空格。
題解:
看到題目第一眼,想到最簡單的比大小。但是由于需要比較的數(shù)字個(gè)數(shù)不清楚,因此需要考慮用多一層的循環(huán)。
首先把輸入的數(shù)字,全部賦值到a的數(shù)組中。然后把a(bǔ)[i]和a[i+1]進(jìn)行比較,若a[i]大,就利用temp,把二者數(shù)值交換。但這個(gè)過程只能換一次,因此需要在外面多包一層循環(huán),才有可能將最小的排到第一個(gè)。
#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;
}