#3805. 整数排序(C++二级)

整数排序(C++二级)

🧮 T4. 特殊排序(奇数优先 + 逆序偶数)

🎓 字符串与数组混合处理题 📌 排序规则 + 奇偶分类


📋 题目描述

给定一行由 10 个非负整数 组成的序列,现要求将其重新排序,排序规则如下:

  1. 所有 奇数 必须排在 偶数 前面;
  2. 奇数按 从大到小 排序;
  3. 偶数按其在输入中的​顺序反转后输出​。

⏱️ 时间与内存限制

  • 时间限制: 1 秒
  • 内存限制: 65536 KB

🔣 输入格式

  • 一行包含 10 个整数,每个数范围在 $[0, 100]$ 之间,数与数之间以一个空格分隔。

📤 输出格式

  • 一行输出按照要求排序后的 10 个整数,数与数之间以一个空格分隔。

📥 输入样例

4 7 3 13 11 12 0 47 34 98

📤 输出样例

47 13 11 7 3 98 34 0 12 4

🔍 样例解释

  • 奇数部分为:7, 3, 13, 11, 47 → 排序后为:47, 13, 11, 7, 3
  • 偶数部分为:4, 12, 0, 34, 98 → 保留原顺序逆序输出:98, 34, 0, 12, 4

🧠 解题思路

  1. 读入 10 个整数;
  2. 使用两个容器分别保存奇数与偶数;
  3. 对奇数按从大到小排序;
  4. 对偶数保持输入顺序并最终反转;
  5. 合并两段输出。