C语言 将数字按按升序排序,怎么做,跪求啊
首先输入的是一个数字T表示有多少组测试数据,接下来是T组测试数据。每组测试数据会有一个数字N表示有N个数字你需要排序。接着是你需要排序的N个数据。(1 <= n <= 1000,接着的N个数字,每个数字都在int型表示范围内)
对于每组数据,输出排序后的结果。
输出的时候,每个数字之间用一个空格格开。最后一个数字后面没有空格。
Sample Input
2
3 2 1 3
9 1 4 7 2 5 8 3 6 9
Sample Output
1 2 3
1 2 3 4 5 6 7 8 9
C语言怎么做?求代码
[解决办法]
是ACM的题目吧
#include<stdio.h>//使用快速排序void my_sort(int *p, int start, int end){ if( start >= end ) return ; int i = start; int j = end; int k = p[start]; while( i < j ) { while( (i<j) && (p[j]>=k) ) --j; p[i] = p[j]; while( (i<j) && (p[i]<=k) ) ++i; p[j] = p[i]; } p[i] = k; my_sort(p, start, i - 1); my_sort(p, i + 1, end);}int p[1000]; //用来存要排序的数据void main(){ int T, n, i; scanf("%d", &T); while( T-- ) { scanf("%d", &n); for(i=0; i < n; ++i) { scanf("%d", &p[i]); } my_sort(p, 0, n - 1); for(i=0; i < n; ++i) { printf("%d ", p[i]); } printf("\n"); }}