1024.排序——C语言

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

 

posted @ 2014-06-18 13:31  BlueLuffy  阅读(255)  评论(0编辑  收藏  举报