7-5 排序

给定 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;
}
相关推荐
希望201713 分钟前
图论基础知识
算法·图论
m0_7135418419 分钟前
systemverilog如何解决不能使用变量索引来进行位选择的范围指定
算法·systemverilog
七牛云行业应用1 小时前
深度解析强化学习(RL):原理、算法与金融应用
人工智能·算法·金融
和编程干到底1 小时前
数据结构 栈和队列、树
数据结构·算法
纪元A梦1 小时前
贪心算法在GNN邻域采样问题中的深度解析
算法·贪心算法
宇钶宇夕1 小时前
西门子 S7-200 SMART PLC 核心指令详解:从移位、上升沿和比较指令到流水灯控制程序实战
运维·算法·自动化
爱编程的化学家1 小时前
代码随想录算法训练营第十一天--二叉树2 || 226.翻转二叉树 / 101.对称二叉树 / 104.二叉树的最大深度 / 111.二叉树的最小深度
数据结构·c++·算法·leetcode·二叉树·代码随想录
tqs_123451 小时前
redis zset 处理大规模数据分页
java·算法·哈希算法
吃着火锅x唱着歌2 小时前
LeetCode 1446.连续字符
算法·leetcode·职场和发展
愚润求学2 小时前
【贪心算法】day10
c++·算法·leetcode·贪心算法