整数分组排序 时间限制:1秒 内存限制:128M 题目描述 现在有一串数字,一共10个整数,老师要求按照顺序排列,但是顺序不是从小到大直接排列,规则如下: 1.奇数在前,偶数在后; 2.奇数按从大到小排序; 3.偶数按从小到大排序。 输入描述 输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100。 输出描述 按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。 样例 输入 4 7 3 13 11 12 0 47 34 98 输出 47 13 11 7 3 0 4 12 34 98c++
时间: 2023-06-02 08:06:03 浏览: 225
数据结构与算法课设题目一1 (2).pdf
抱歉,我可以回答关于整数分组排序的问题。这道题可以使用冒泡排序,先把奇数和偶数分别挑出来,分别排序,最后合并即可。代码实现可以参考以下示例:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> nums(10);
for (int i = 0; i < 10; i++) {
cin >> nums[i];
}
vector<int> odd, even;
for (int i = 0; i < 10; i++) {
if (nums[i] % 2 == 1) {
odd.push_back(nums[i]);
} else {
even.push_back(nums[i]);
}
}
sort(odd.rbegin(), odd.rend()); // 从大到小排序
sort(even.begin(), even.end()); // 从小到大排序
vector<int> result;
result.reserve(nums.size());
result.insert(result.end(), odd.begin(), odd.end());
result.insert(result.end(), even.begin(), even.end());
for (int i = 0; i < 10; i++) {
cout << result[i] << " ";
}
cout << endl;
return 0;
}
阅读全文