1024. 排序
Input Format
第一行:正整数n,表示需要排序的数字的个数;
第二行:n个正整数,代表需要排序的数字。
Output Format
输出共一行,n个正整数,为从小到大排序后的结果。
Sample Input
3
2 1 3
Sample Output
1 2 3
Limits
n<10000,时间限制1000ms,内存限制30000kb。
这个题使用交换法排序也可以过,代码如下:
1 #include<stdio.h> 2 void main(){ 3 int n,i,j,k,temp; 4 int *p; 5 scanf("%d",&n); 6 p= (int *)malloc(n*sizeof(int)); 7 for(i=0;i<n;i++){ 8 scanf("%d",p+i); 9 } 10 for(i=0;i<n;i++){ 11 k=i; 12 for(j=i;j<n;j++){ 13 if(p[k]>p[j]){ 14 k=j; 15 } 16 } 17 if(k!=i){ 18 temp = p[i]; 19 p[i]=p[k]; 20 p[k]=temp; 21 } 22 } 23 for(i=0;i<n;i++){ 24 printf("%d ",p[i]); 25 } 26 free(p); 27 }
acm中动态申请内存不可以判断是否申请成功,所以谨记 别养成坏习惯。