首页 > 试题广场 >

小苯的数字排序

[编程题]小苯的数字排序
  • 热度指数:303 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1024M,其他语言2048M
  • 算法知识视频讲解
\hspace{15pt}小苯有 n 个数字 a_1, a_2, \dots, a_n,他希望将这些数字按照以下规则排序:
{\hspace{20pt}}_\texttt{1.}\,所有偶数排在所有奇数前面;
{\hspace{20pt}}_\texttt{2.}\,在规则 1 的基础上,偶数与偶数之间、奇数与奇数之间,都按照数值从小到大的顺序排列。
\hspace{15pt}请你帮他排出一个合理的顺序吧。

输入描述:
\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leqq T\leqq 10^5\right) 代表数据组数,每组测试数据描述如下:
\hspace{15pt}第一行一个正整数 n\left(1 \leqq n \leqq 2 \times 10^5\right) 表示数字的个数。
\hspace{15pt}第二行 n 个正整数 a_1, a_2, \dots, a_n\left(1 \leqq a_i \leqq 10^9\right),表示小苯的 n 个数字。
\hspace{15pt}除此之外,保证单个测试文件的 n 之和不超过 2 \times 10^5


输出描述:
\hspace{15pt}对于每一组测试数据,新起一行输出 n 个数字,表示按小苯的要求排好序的结果。
示例1

输入

2
5
1 2 3 4 6
3
1 1 2

输出

2 4 6 1 3
2 1 1

说明

\hspace{15pt}对于第一组测试数据,偶数集合为 \{2, 4, 6\},奇数集合为 \{1, 3\}。偶数内部升序排列为 \{2, 4, 6\},奇数内部升序排列为 \{1, 3\}。根据规则,偶数在前,奇数在后,拼接得到最终结果:\{2, 4, 6, 1, 3\}
头像 Ldh1315109
发表于 2025-11-07 16:51:08
def solve(testcase): n = II() A = LII() B, C = [], [] for a in A: if a & 1: C.append(a) else: 展开全文
头像 牛客171874905号
发表于 2025-11-29 19:25:27
#include <bits/stdc++.h> using namespace std; int main(){ int t; cin>>t; while(t--){ int n; cin>>n; 展开全文
头像 duire
发表于 2025-12-03 19:38:43
#include<bits/stdc++.h> using namespace std; void solve(){ int n; cin>>n; vector<int> even,odd; for( 展开全文
头像 fat_
发表于 2025-10-24 22:03:14
#include #include #include using namespace std; int main(){ int T,n; cin>>T; for(int i=0;i<T;i++){ cin>>n; vector even; vector odd; 展开全文
头像 自由的风0450
发表于 2025-11-27 13:30:28
#include <iostream> #include<vector> #include<algorithm> using namespace std; int main() { ios::sync_with_stdio(false); cin 展开全文