首页 > 代码库 > 1024.排序——C语言

1024.排序——C语言

1024. 排序

Input Format

第一行:正整数n,表示需要排序的数字的个数;

第二行:n个正整数,代表需要排序的数字。

Output Format

输出共一行,n个正整数,为从小到大排序后的结果。

Sample Input

32 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中动态申请内存不可以判断是否申请成功,所以谨记 别养成坏习惯。