http://acm.uestc.edu.cn/problem.php?pid=1042
Description
小Q在课堂上学到利用指针指向数据,数据不交换指针交换就能达到把数据排序的目的。他觉得很神奇,也觉得在单个数据元素占有空间太大的情况下这样排序非常有效。他想知道,如果在事先不知道元素个数的情况下,能否用这种方法对输入的元素排序,你能帮他吗?(数据的存储要求用动态分配内存实现)
Input
第一行是一个正整数T表示测试数据的组数。下面每一组的第一行是一个整数n,第二行有n个待排序的整数,每个数后有一个空格。每个数据的大小不会超过整型数据存储的范围。
Output
每组数据对应有一行排序后的数据输出,每个数据后应有一个空格。
Sample Input
1
5
2 9 7 4 3
Sample Output
2 3 4 7 9
我的解答是:
1 #include<stdio.h> 2 3 int N,i,t,j,k,p; 4 int data[2000][2000],n[2000]; 5 6 int main() 7 { 8 scanf("%d",&t); 9 for (i=0;i<t;i++) 10 { 11 scanf("%d",&n[i]); 12 for (j=0;j<n[i];j++) scanf("%d",&data[i][j]); 13 } 14 for(k=0;k<t;k++) 15 for(p=0;p<t;p++) 16 { 17 for(i=0;i<n[k];i++) 18 for(j=0;j<n[k]-1;j++) 19 if(data[p][j]>data[p][j+1]) 20 {t=data[p][j];data[p][j]=data[p][j+1];data[p][j+1]=t;} 21 } 22 for(i=0;i<t;i++) 23 { 24 for(j=0;j<n[i];j++) printf("%d ",data[i][j]); 25 printf("\n"); 26 } 27 28 }
好像不是指针排序,有待优化。