给定 n 个(长整型范围内的)整数,要求输出从小到大排序后的结果。
本题旨在测试各种不同的排序算法在各种数据情况下的表现。各组测试数据特点如下:
-
数据1:只有1个元素;
-
数据2:11个不相同的整数,测试基本正确性;
-
数据3:103个随机整数;
-
数据4:104个随机整数;
-
数据5:105个随机整数;
-
数据6:105个顺序整数;
-
数据7:105个逆序整数;
-
数据8:105个基本有序的整数;
-
数据9:105个随机正整数,每个数字不超过1000。
输入格式:
输入第一行给出正整数 n(≤105),随后一行给出 n 个(长整型范围内的)整数,其间以空格分隔。
输出格式:
在一行中输出从小到大排序后的结果,数字间以 1 个空格分隔,行末不得有多余空格。
输入样例:
11 4 981 10 -17 0 -20 29 50 8 43 -5
输出样例:
-20 -17 -5 0 4 8 10 29 43 50 981
代码长度限制
16 KB
Java (javac)
时间限制
10000 ms
内存限制
128 MB
Python (python3)
时间限制
5000 ms
内存限制
64 MB
其他编译器
时间限制
3000 ms
内存限制
64 MB
栈限制
8192 KB
cpp
#include <stdio.h>
#include <stdlib.h>
// 比较函数,用于qsort
int compare(const void *a, const void *b) {
long int num1 = *(long int *)a;
long int num2 = *(long int *)b;
return (num1 > num2) - (num1 < num2);
}
int main() {
int n;
scanf("%d", &n);
long int arr[n];
for (int i = 0; i < n; i++) {
scanf("%ld", &arr[i]);
}
// 使用qsort进行排序
qsort(arr, n, sizeof(long int), compare);
// 输出排序后的结果
for (int i = 0; i < n; i++) {
printf("%ld", arr[i]);
if (i < n - 1) {
printf(" ");
}
}
printf("\n");
return 0;
}